Sida 2 av 2
Postat: 26 september 2008, 15:56:08
av sodjan
OK, bara återkom om något är oklart...
Postat: 30 september 2008, 20:57:07
av Stene
Nu är jag här med en dum fråga igen. jag sitter o försöker o förstå vad jag har gjort för fel i en kod. det är 4st dioder som ska rinna fram o tillbakas. det får jag att fungera perfekt men jag vill ha lite olika hastigheter på det. Att det går från höger till vänster i en fart och från vänster till höger i en annan. Jag har då angivit 2 st tider. det fungerar så att när jag har en tid på tid1 och en annan på tid2. då funkar det som jag vill, fort åt höger o sakta till vänster. Men om jag byter plats på tiderna så går den i samma hastighet höger till vänster, vänster till höger. Jag har markerat tiderna som xxxx i koden. Vad har jag gjort för fel. sen fins det säkert ett bättre sätt att skriva koden. Jag är en riktig nybörjare!!
STATUS equ 0x03
portc equ 0x07
var1 equ 0x20
var2 equ 0x30
var3 equ 0x25
var4 equ 0x35
trisc equ 0x87
RPO equ 0x05
tid1 equ xxxx
tid2 equ xxxx
org 0x00
goto init
Wait1 movlw tid1
movwf var2
loop decfsz var1,1
goto loop
decfsz var2,1
goto loop
return
Wait2 movlw tid2
movwf var3
loop2 decfsz var3,1
goto loop2
decfsz var4,1
goto loop2
return
init clrw
movwf portc
bsf STATUS,RPO
movwf trisc
bcf STATUS,RPO
main bsf portc,0
call Wait1
bcf portc,0
bsf portc,1
call Wait1
bcf portc,1
bsf portc,2
call Wait1
bcf portc,2
bsf portc,3
call Wait2
bcf portc,3
bsf portc,2
call Wait2
bcf portc,2
bsf portc,1
call Wait2
bcf portc,1
goto main
end
Postat: 30 september 2008, 20:58:45
av sodjan
Hej.
Återkom med hela koden. D.v.s #include av device filen och din CONFIG o.s.v.
Och lägg in den med code-taggarna så att det går att läsa.
*Sen* kan vi kolla...
Postat: 30 september 2008, 21:03:36
av sodjan
En liten sak...
> det är 4st dioder som ska rinna fram o tillbakas.
Görs normalt med "rotate" instruktionerna. Kolla lite på dom.
För övrigt så framgår det inte ens vad det är för processor...
Postat: 1 oktober 2008, 06:49:28
av Swech
titta på dina waitloopar
de är inte skrivna på samma sätt ..titta noga
Sen kan man "återvinna" samma waitloopar eftersom
det bara är tiden tid1 och tid2 som skiljer
Kod: Markera allt
Wait1
movlw tid1
movwf var2
loop
decfsz var1,1
goto loop
decfsz var2,1
goto loop
return
om man istället gör så här
Kod: Markera allt
movlw tid1
call Wait1
.
.
.
.
.
Wait1
movwf var2
loop
decfsz var1,1
goto loop
decfsz var2,1
goto loop
return
så skickar du bara med tiden du vill vänta i W och använder
samma paus
Swech