Miten saa helpoiten koodattua 15 sekunnin viiveen? Joitakin malleja oon löytänyt netistä, mutta ne on ollut sekunnin tai tunnin. Ei kai nyt sentään "sekunnin koodeja" copy/pastata 15 kertaa?
Pic Assembler
peltsi
6429
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 6
Vanhimmat
555 kaikkein helpoin!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Pistän tähän ASSEMBLER-koodin, joka on tehty ATMEL-mikroon. Antaa tarkan sekunnin viiveen, kun kellotaajuus on 4 MHz.
sek_viive: ldi r16, 0x15 ;viivearvojen asetus
ulkokier: ldi r17, 0xFF
keskikier: ldi r18, 0xF8
sisäkier; dec r18 ;viiveen purku
brne sisäkier
dec r17
brne keskikier
dec r16
brne ulkokier
ret (jos on aliohjelma)
Olisiko tästä ajatusapua. ATMEL-mikron koodinpätkiä laitan blogiini elektroniikkaabytane
Niin eli tee siitä sekunnin viiveestä aliohjelma, jota kutsut silmukassa tarvittavan määrän.
ao. esimerkissä saattaa olla virheitä, en ole tehnyt pic-koodia, mutta jos siitä kävisi periaate ilmi.
...
movlw 15 ;w rekisteriin 15
movwf counter ;siirrä w rekisterin arvo muuttujaan
decfsz counter,1 ; vähennä muuttujasta 1, jos menee nollaksi, hyppää seuraavan rivin yli
goto delay_1_s
...
...
delay_1_s
... ; aliohjelma, jonka suoritus kestää sekunnin
return
Paljos sulla olikaan kellotaajuus?
Alla on yksinkertainen noin 15 sekunnin viive 4 tai 8 MHz:n PICille (en nyt muista kummalle). MPLABilla voit helposti testata ja simuloida sitä ja säätää viiveen tarkalleen haluamaksesi Stopwatchin kanssa. Ohjelmassa on kolme sisäkkäistä silmukkaa, joista ulommaista toistetaan 76 kertaa, sisempää 255 kertaa ja sisintä myös 255 kertaa.
Muuttujien määrittelyosassa:
v1 res 1
v2 res 1
v3 res 1
Ohjelmakoodissa:
viive movlw .76
movwf v3
viive1 movlw .255
movwf v2
viive2 movlw .255
movwf v1
viive3 decfsz v1,f
goto viive3
decfsz v2,f
goto viive2
decfsz v3,f
goto viive1
return
Kutsu ohjelmassa halutussa kohdassa:
call viive
kiitokset. Tässä tuli ammattilaisen neuvoa. Tällaista apua aina tarvitaan ja tällaisesta vois vaikka maksaa.