hi vielen dank. werd bei meiner nächsten reichelt bestellung auf jeden
fall mal ein par transistoren mitbestellen.
hab die anzeigen aber für den moment direkt angeschlossen. hätte eine
Frage zum c code und zwar was sehr komisches, ist mir noch nie passiert:
Folgender code
#include <avr/io.h>
#include <avr/oldmacros.h>
unsigned char Segmentausgabe(unsigned char zeichen);
int main(void){
unsigned char array1[]={"HALL"};
int i=0;
outp(0xff, DDRD);
outp(0xff, DDRB);
//while(1){
//erste anzeige
outp(0x20, PORTB);
outp(Segmentausgabe(array1[i]), PORTD);
outp(0x00, PORTB);
//zweite anzeige
outp(0x10, PORTB);
outp(Segmentausgabe(array1[i+1]), PORTD);
outp(0x00, PORTB);
//dritte anzeige
outp(0x08, PORTB);
outp(Segmentausgabe(array1[i+2]), PORTD);
outp(0x00, PORTB);
//vierte anzeige
outp(0x04, PORTB);
outp(Segmentausgabe(array1[i+3]), PORTD);
outp(0x00, PORTB);
//}
return 0;
}
die funktion segmentausgabe gibt im prinzip nur den code für die
jeweiligen buchstaben aus. nun aber folgendes.
wenn ich die kommentarzeichen vor der while schleife wegmache, dann
läuft der compiler beim debuggen immer nur die mittlere codezeile von
jedem der 4 blöcke ab. das "outp(0x20, PORTB);" aus dem ersten block
überliest er total. wenn die while schleife aber weg ist, dann
durchläuft er alles so we er soll.
woran kann das liegen>???
vielen dank im voraus.