So vielleicht:
Code:if(setOrDel==0) //wenn Variable 0 ist { ports = (ports & ~(1<<port)); //Pin löschen } else { ports = (ports | (1<<port)); //sonst (z.B. bei 1) Pin setzen }
Werbung
So vielleicht:
Code:if(setOrDel==0) //wenn Variable 0 ist { ports = (ports & ~(1<<port)); //Pin löschen } else { ports = (ports | (1<<port)); //sonst (z.B. bei 1) Pin setzen }
![]()
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
& ist bitweises Und, | ist bitweises Oder, ~(Tilde) bedeutet bitweises Invertieren in Cäh:
http://www.rn-wissen.de/index.php/C-...Bit-Operatoren
![]()
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Hallo radbruch,
danke, so funktioniert es schon sehr viel besser, es gibt aber immer noch ein paar Probleme:
So:
Blinkt die LED an P4, so, wie es sein sollte.Code:setPortPCF8574(0x70,4,1); _delay_ms(500); setPortPCF8574(0x70,4,0); _delay_ms(500); setPortPCF8574(0x70,4,1); _delay_ms(500); setPortPCF8574(0x70,4,0); _delay_ms(500); setPortPCF8574(0x70,4,1); _delay_ms(500);
Hier:
hängt sich der ATmega8 aber beim Ausschalten der LEDs auf. So:Code:setPortPCF8574(0x70,4,1); _delay_ms(500); setPortPCF8574(0x70,5,1); _delay_ms(500); setPortPCF8574(0x70,6,1); _delay_ms(500); setPortPCF8574(0x70,7,1); _delay_ms(500); setPortPCF8574(0x70,7,0); _delay_ms(500); setPortPCF8574(0x70,6,0); _delay_ms(500); setPortPCF8574(0x70,5,0); _delay_ms(500); setPortPCF8574(0x70,4,0); _delay_ms(500);
gehen die, nachdem alle eingeschaltet wurden, alle ordnungsgemäß aus. Das Programm hängt sich aber nicht auf. Wie gesagt, alles etwas merkwürdig...Code:setPortPCF8574(0x70,4,1); _delay_ms(500); setPortPCF8574(0x70,5,1); _delay_ms(500); setPortPCF8574(0x70,6,1); _delay_ms(500); setPortPCF8574(0x70,7,1); _delay_ms(500); i2c_start_wait(0x70 + I2C_WRITE); i2c_write(0xff); i2c_stop(); setPortPCF8574(0x70,7,0); _delay_ms(500); setPortPCF8574(0x70,6,0); _delay_ms(500); setPortPCF8574(0x70,5,0); _delay_ms(500); setPortPCF8574(0x70,4,0); _delay_ms(500);
Danke und
Viele Grüße
teamohnename
Lesezeichen