Sida 1 av 1

tst i ATMega128

Postat: 10 mars 2004, 10:18:02
av Harald
I bif. subrutin vill jag testa om r11 är noll och om så ej är fallet vill jag hoppa ur.
Det spelar ingen roll vad r11 har för värde. Inget hopp sker. Varför?
Jag kör i debuggern i AVR Studio.
/Harald

r11_Is_Down:
tst r11
brne SLUT_r11_Down ;Hoppa till slut om r11 <> 0
ldi Sekvens_Flag,4
SLUT_r11_Down:
ret

Postat: 10 mars 2004, 10:26:34
av Melker
Är osäker på hur tst fungerar, men cpi borde väl fungera, eller?

Postat: 10 mars 2004, 10:45:18
av Harald
testade med
cpi r11,0
men det gav följande felbesked:
(519) Illegal argument type or count.

Testade med andra värden än noll och provade även med att lägga ett värde i variabeln Temp men det gav samma felmeddelande.
tst har jag använt tidigare för att testa om noll eller negativt och det har funkat. Är det problem för att det finns i en subrutin?

/Harald

Postat: 10 mars 2004, 11:05:18
av Harald
Det är fel i debuggern! Det funkar ibland och ibland inte. Om jag programmerar kretsen så funkar det alltid!
/Harald

Postat: 10 mars 2004, 11:17:25
av Melker
Testade tst nu i AVR-studio, tycker det verkar fungera som det ska.

Föresten så är det nog möjligt att cpi inte fungerar med dom nedre 16registerna, men det är ju bara att flytta över till ett av de högre registerna och sedan jämföra.