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íš
![Very Happy :D](./images/smilies/icon_biggrin.gif)
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
![Very Happy :D](./images/smilies/icon_biggrin.gif)
PS. 6) tlačítko nevynechává procesor na jeden klik to sjede tak 5x
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Napsal: 26 led 2015, 21:00
od MiloPS3
pull-down
![Obrázek](http://ieeetamu.org/blog/wp-content/uploads/2013/10/pullup_pulldown_resistors.png)
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 ...
![Cool 8-)](./images/smilies/icon_cool.gif)
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
http://www.asix.cz/download/museum/othe ... 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.