Gast
#169444
Ich programmiere mein MyAVR-Board mit dem ATmega8 über den LTP-Port und WinAVR. Bisher funktionierte alles einwandfrei. Leider musste ich jetzt feststellen, dass der MC bei angeschlossenem LTP-Port sein Programm nicht mehr richtig ausführt. An PINB5 habe ich z.B. ständig eine 1 und mein programmiertes Lauflicht funktioniert nur noch an drei LEDS antstatt an allen Ausgängen an Portb. Woran kann das liegen, ich habe keine Hardwareeinstellungen vorgenommen... Hier noch der Code: #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/delay.h> float del(int x); int speed(int y); int main(void){ int delay=50; int lauflicht; lauflicht=0x01; while(1){ while(lauflicht<0x20){ lauflicht=(lauflicht<<1); PORTB=lauflicht; _delay_ms(del(lauflicht)*delay); delay=speed(delay); } while(lauflicht>0x01){ lauflicht=(lauflicht>>1); PORTB=lauflicht; _delay_ms(del(lauflicht)*delay); delay=speed(delay); } } } float del(int x){ if (x==0x20 || x==0x01){ return 0.33; } if (x==0x04 || x==0x08){ return 1; } if (x==0x02 || x==0x10){ return 0.66; } return 0; } int speed(int y){ DDRD = 0x00; /* alle Pins von Port D als Eingang */ PORTD = 0xff; /* interne Pull-Ups an allen Port-Pins aktivieren */ if (!( PIND & (1<<PIND2)) ) { if(y>0){ y=y-5; _delay_ms(100); return y; } } if(y<=0){ return 100; } return y; }