chaotic
25.04.2008, 18:16
Hi, weiß jmd wo der Fehler bei folgendem Code ist?
Der Fehler muss auf jeden Fall im Code sein, verändert funktioniert alles aber eben nicht so wie gewollt:
Bei Licht soll der Transistor strom auf PB2 geben und die LED aktivieren bis durch einen einmaligen Impuls an PB0 selbige ausgeschaltet wird.
Es scheint als würde er immer in die if abfrage if(bit_is_set(PINB, 0)) gehen auch wenn auf PB0 kein Strom liegt, danke im vorraus!
#include <avr/io.h>
int main()
{
DDRB = 0b00001000; // PB3 ist Ausgang
int iloop = 1;
do
{
if(bit_is_set(PINB, 0))
{
PORTB = 0b00000000;
iloop = 0;
} else if(bit_is_set(PINB, 2))
{
PORTB = 0b00001000;
}
} while(iloop == 1);
return 1;
}
LED: PB3 - K2
Widerstand: L2 - GND
Fototransistor: VCC - PB2
Der Fehler muss auf jeden Fall im Code sein, verändert funktioniert alles aber eben nicht so wie gewollt:
Bei Licht soll der Transistor strom auf PB2 geben und die LED aktivieren bis durch einen einmaligen Impuls an PB0 selbige ausgeschaltet wird.
Es scheint als würde er immer in die if abfrage if(bit_is_set(PINB, 0)) gehen auch wenn auf PB0 kein Strom liegt, danke im vorraus!
#include <avr/io.h>
int main()
{
DDRB = 0b00001000; // PB3 ist Ausgang
int iloop = 1;
do
{
if(bit_is_set(PINB, 0))
{
PORTB = 0b00000000;
iloop = 0;
} else if(bit_is_set(PINB, 2))
{
PORTB = 0b00001000;
}
} while(iloop == 1);
return 1;
}
LED: PB3 - K2
Widerstand: L2 - GND
Fototransistor: VCC - PB2