Hallo,
ich steige zur Zeit gerade von Bascom auf C um und bin grade an den
einfachen Sachen dran. Hello World, LED blinken und sowas ist schon
durch und geht auch.
Just in diesem Moment sitze ich vor einen 7 Segment Anzeige, die an
meinen Atmega32 an PortA angeschlossen ist.
Was soll ich sagen, sie leuchtet und gibt mir eine "0" aus. Soweit so
gut, bis hierhin alles bestens. Aber eigetlich soll sie nach 500ms von
"0" auf "1" umschalten, nur genau das macht sie nicht.
Zuerst habe ich falsche Fuses vermutet, aber nix da. Auch nach 3min
passiert absolut nix.
Was mache ich denn falsch? Bin ich einfach nur zu doof oder gibts dafür
eine vernüftige Erklärung.
Verwende AVR Studio 4 und der Quellcode lässt sich sauber ohne Fehler
durchcompilieren.
F_CPU ist in den Einstellungen des Projekts auf 1MHz gestellt.
Sitzte jetzt schon sein 8 min vor der Null auf der Anzeige, keine
Reaktion. Ich habe das Gefühl das der Controller mit der _delay_ms nichs
anfangen kann, ist sowas möglich?
Hier der Quellcode:
1 | #include <util/delay.h>
|
2 | #include <avr/io.h>
|
3 |
|
4 | int main(void)
|
5 | {
|
6 | DDRA=0xff;
|
7 |
|
8 | while(1)
|
9 | {
|
10 | PORTA=0b11000000;
|
11 | _delay_ms(500);
|
12 | PORTA=0b11111001;
|
13 | }
|
14 | }
|
Soviel kann man da doch gar nicht falsch machen.
Achja, die Anzeige ist eine mit Common Anode, falls das noch jemanden
interessiert, aber ich denke das ist eigetlich völlig Wurst.