Sida 1 av 1

hjälp med en snutt C ´=?

Postat: 17 juni 2005, 12:46:07
av lizerdboy
DDRB=0; //PORTB -> Eingänge
PORTB=0x03; //Pull-Ups auf LED-Pins
for(k=0;k<250;k++) asm("nop");

if(!(PINB&0x03)) asm volatile("rjmp app_start");

den sista raden i koden är det menat att både portB pin 0 och 1 ska vara låga eller höga ? vet ej för att ("rjmp app_start"); ska köras ?

någon som kan förklara detta för mig ?=)

Postat: 17 juni 2005, 13:24:54
av AndLi
Mitt första bud får bli att:

Kod: Markera allt

....PinB           0x03
0x00 0000 && 0011    =  0000  
0x01 0001 && 0011    =  0001
0x02 0010 && 0011    =  0010
0x03 0011 && 0011    =  0011
Så jag vill påstå att rjmp:en körs när båda pinnarna är låga...

Postat: 17 juni 2005, 13:51:21
av lizerdboy
vad i koden är de som säger att dom ska vara låga " if (låga) then jump ,
fattar inte vad/vart som som bestämmer att dom ska vara låga,

att de var båda benen var ganska upenbart,

Postat: 17 juni 2005, 13:55:57
av chille
! betyder not

if(!a) är samma som if(a == false)
if(a) är samma som if(a != false)

false är 0