Gast
#1006825
Hallo zusammen
Hab grad nen sehr merkwürdiges Problem, arbeite grad mit nem Tiny25, war
grad nen bissl am rumspielen mit C, dabei bin ich auf folgendes Phänomen
gestoßen: Dieses Programm funktioniert wie es soll:
(Bei Erde an PB3 geht PB4 aus)
#include <avr/io.h>
int main (void) {
DDRB = 0b00010000;
PORTB = 0b00001000;
while ( PINB & (1<<PINB3) ) {
PORTB = 0b00011000;
}
PORTB = 0b00001000;
while(1) {
/* "leere" Schleife*/;
}
/* wird nie erreicht */
return 0;
}
Dieses jedoch nicht:
(Bei Erde an PB3 geht PB4 an)
#include <avr/io.h>
int main (void) {
DDRB = 0b00010000;
PORTB = 0b00001000;
while ( PINB & (1<<PINB3) ) {
PORTB = 0b00001000;
}
PORTB = 0b00011000;
while(1) {
/* "leere" Schleife*/;
}
/* wird nie erreicht */
return 0;
}
Hier ist von Anfang an PB4 an, das soll aber erst passieren, wenn die
Bedingung in der Schleife falsch wird.
Jemand ne Idee?