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 :D

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íš :D
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 :D
PS. 6) tlačítko nevynechává procesor na jeden klik to sjede tak 5x :D

Napsal: 26 led 2015, 21:00
od MiloPS3
pull-downObrázek 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 ... 8-)
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 :D
první program plně funkční :D

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.