Mein mega8 gibt mir an den Ausgängen von Portb bei einer logischen 1 nur ca. 0,5V. Und PinB4 ist immer high bei angeschlossenem Parallelport... Wäre cool wenn mir jemand helfen könnte Habe folgendes Programm geschrieben: #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; }
oh, gefunden. sehr schlechter Programmierstil... Ausserdem ist da eine { zuviel. Mach doch erst die Port-Initialisierung (in der main()). Vielleicht solltest du auch dem PORTB sagen, dass er ein Ausgang ist... DDRB = 0xFF... Und lass dann deine Schleife laufen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.