Stránka 1 z 1
program
Napsal: 26 led 2015, 19:02
od paycz
Ahoj, učím se programovat a udělal jsem si jednoduchý program na spínání led pomocí jednoho tlačítka a potřebuji aby mě někdo řekl co mám špatně nebo jestli to má smysl
Kód: Vybrat vše
LIST P=16F84
INCLUDE<P16F84.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC
#DEFINE VYSTUP PORTA,3
#DEFINE VYSTUP1 PORTA,1
#DEFINE VYSTUP2 PORTA,2
#DEFINE TLAC PORTA,0
BSF STATUS,RP0
MOVLW B'00000001'
MOVWF TRISA
BCF STATUS,RP0
BCF VYSTUP
START BTFSS TLAC
GOTO $-1
BSF VYSTUP
BSF VYSTUP1
BSF VYSTUP2
NOP
BTFSS TLAC
GOTO $-1
BCF VYSTUP
BCF VYSTUP1
BCF VYSTUP2
NOP
GOTO REZ1
REZ1 BSF VYSTUP
BSF VYSTUP1
BTFSS TLAC
GOTO $-1
BCF VYSTUP
BCF VYSTUP1
GOTO START
END
Napsal: 26 led 2015, 19:49
od MiloPS3
Cau,
1) kod se dava do "Code" !
2)mas tam pull-down ?
3)kdyz stisknes tlacitko tak se program otoci tolikrat,ze se ti z toho zamota hlava
4)pro zacatek by to chtelo malej delay za to nastavovani vystupu
5) a kdyz uz sem das kod do "Code" tak je vhodne napsat co to dela a jak se to chova..
6)procesor ti bezi ?
Napsal: 26 led 2015, 20:37
od paycz
MiloPS3 píše:Cau,
1) kod se dava do "Code" !
2)mas tam pull-down ?
3)kdyz stisknes tlacitko tak se program otoci tolikrat,ze se ti z toho zamota hlava
4)pro zacatek by to chtelo malej delay za to nastavovani vystupu
5) a kdyz uz sem das kod do "Code" tak je vhodne napsat co to dela a jak se to chova..
6)procesor ti bezi ?
1OK
2Nevím co tím myslíš
4 bohužel nevím jak NOP je krátkej
5 ok
6 dal jsem to do real pic sim sice občas program nereaguje na button ale nejspíš to bude simulátorem
PS. 6) tlačítko nevynechává procesor na jeden klik to sjede tak 5x

Napsal: 26 led 2015, 21:00
od MiloPS3
pull-down

pokud ho tam nemas tak to bude delat prasarny ...,skus si dohledet proc
NOP- jak je dlouhej se dozvis z DS
delay-mel sem na mysli cekaci smycku,pouze s NOPama by to bylo ale zajimavy ...
no prave po sepnuti tlacitka se ti to otoci nekolikrat, proto tam tu cekaci smycku, nebo pockej na rozepnuti tlacitka ale to by si musel zase osetrit zakmity tlacitka !
PS: tet sem nasel docela zajimavy cteni
www.asix.cz/download/museum/other/pic_k ... krokem.pdf
Napsal: 26 led 2015, 21:11
od paycz
tak to stačit dat že když stisknu tlačítko tak to skočí na další funkci který bude dělat opak
BTFSS TLAC
BTFSC TLAC
Napsal: 26 led 2015, 21:18
od paycz
díky za pomoc konečně sem si doplnil věci které sem z knížek nepochopil
první program plně funkční
Kód: Vybrat vše
LIST P=16F84
INCLUDE<P16F84.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC
#DEFINE VYSTUP PORTA,3
#DEFINE VYSTUP1 PORTA,1
#DEFINE VYSTUP2 PORTA,2
#DEFINE TLAC PORTA,0
org 00h ; na prvni pozici v pameti bude toto GOTO
GOTO START
START
BSF STATUS,RP0
MOVLW B'00000001'
MOVWF TRISA
BCF STATUS,RP0
BCF VYSTUP
BTFSS TLAC
GOTO $-1
BTFSC TLAC
GOTO $-1
BSF VYSTUP
BSF VYSTUP1
BSF VYSTUP2
NOP
BTFSS TLAC
GOTO $-1
BTFSC TLAC
GOTO $-1
BCF VYSTUP
BCF VYSTUP1
BCF VYSTUP2
NOP
GOTO REZ1
REZ1 BSF VYSTUP
BSF VYSTUP1
BTFSS TLAC
GOTO $-1
BTFSC TLAC
GOTO $-1
BCF VYSTUP
BCF VYSTUP1
GOTO START
END
Napsal: 26 led 2015, 21:33
od MiloPS3
Tak to mas asi dobry tlacitko. Neber to snimani tlacitka jako 100% a spravne, je to jen na zacatek
Napsal: 26 led 2015, 21:48
od hakamusai
paycz > ten program je hodně divokej.Takhle to neřeš. Pokud inicializuješ HW procesoru ,tak není třeba opakovat za běhu.Koukni do tý příručky ASIX,je to tam dobře popsaný.
Napsal: 27 led 2015, 13:55
od Atlan
Len pozor na RMW problem, aby sa ti to nevypomstilo.
Napsal: 28 led 2015, 18:13
od kulikus
paycz píše:tak to stačit dat že když stisknu tlačítko tak to skočí na další funkci který bude dělat opak
BTFSS TLAC
BTFSC TLAC
Protože kontakt tlačítka několikrát odskočí/zakmitá, je dobré dát mezi ty dva řádky programu prodlevu asi 20ms - smyčku.