Hallo ich hab mir vor einigen tagen das avr starter kit gekauft http://shop.embedded-projects.net/index.php?module=artikel&action=artikel& id=108 allerdings benutze ich nicht den Usbprog 3.0 sondern den AVRISP mkll. Nun zum problem in der Anleitung gibt es ein Test-Beispielprogramm, welches die LED blinken lassen soll, leider geht das nicht wie gewünscht. Ich habe zwar sehr lange gegoogelt und nehme an es liegt an den Fuses bit, Wie muss ich diese einstellen oder stimmt die momentane einstellung?:( hier noch das Beispielprogramm und im Anhang die ausgelesenen Fuses+schaltplan des controllers: #include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h> int main() { DDRC = (1 << PC5); /* Output */ PINC = (1 << PC5); /* internal Pullups */ while(1){ PORTC |= (1 << PC5);/*LED OFF*/ _delay_ms(250); PORTC &= ~(1 << PC5); _delay_ms(250); } return 0; }
Marvin Mujkic schrieb: > leider geht das nicht wie gewünscht WAS geht nicht? Was passiert denn statt der blinkenden LED? Wie hast Du das festgestellt? Ist der Jumper gesteckt? Schau Dir mal Deinen Screenshot an (die Fuses) und dann überleg mal wozu diese Zeile in Deinem Programm gut sein könnte:
1 | #define F_CPU 1000000UL
|
Besser wäre es allerdings, diese Zeile komplett zu entfernen und statt dessen im AVRStudio unter Project->Configuration Options die tatsächliche Fraquenz einzutragen, das Makro F_CPU wird dann im vom AVRStudio generierten Makefile gesetzt. Ansonsten, die Zeile ist auch überflüssig:
1 | PINC = (1 << PC5); |
Achso, noch was. Da auf dem Board anscheinend ein Quartz verbaut ist, wäre eine Fuse-Einstellung mit "external Crystal ..." wahrscheinlich richtiger. Wichtig wird das für Dich aber eigentlich erst, wenn Du die USART verwenden willst. Bis dahin kannst Du getrost bei Deinen jetzigen Einstellungen bleiben.
... schrieb: > Ansonsten, die Zeile ist auch überflüssig: > PINC = (1 << PC5); Sie setzt zwar den Pin auf high, aber das ist dann kein schwacher Pullup, sondern kräftig, da er ja ein Ausgang ist. Peter
... schrieb: > Ansonsten, die Zeile ist auch überflüssig: > PINC = (1 << PC5); Beim ATmega8 ist sie wirkungslos, aber beim ATmega88 funktioniert sie. Sie setzt den Pin von low auf high, aber das ist dann kein schwacher Pullup, sondern kräftig, da er ja ein Ausgang ist. Peter
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.