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.