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 }
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 }
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo!
Ich kenne Cäh gar nicht, aber einzelne Bits, ohne andere zu beeinflüssen, löscht man mit 0 in AND und setzt mit 1 in OR, was der radbruch angeblich schon in Cäh formuliert hat, was ich aber nicht checken kann.![]()
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
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Vielen Dank für deine extra Erklärung
Für mich ist aber die C-Programiersprache künstlicher als meine eigene KI.
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