Hallo, hab schon wieder ein Problem und zwar hab ich die Fusebits so gesetzt, wie im Tutorial beschrieben und jetzt reagiert der ATMega8 nicht mehr. Ich hab irgendwo im Forum gelesen, dass es einen Unterschied macht, ob man einen Quarz mit 2 oder 4 Beinen angeschlossen hat. Wenn ja, wie geht es richtig? Gruß Martin
Nochmal was, im Tutorial steht, dass man die Fuses so einstellen soll: http://www.mikrocontroller.net/images/atmega8-nachher.png Aber wo wird da die Frequenz des externen Quarzoszillators angegeben? Laut Datenblatt wird das über die 4 oberen Fusebits eingestellt.
und im datenblatt steht auch unter "system clock and clock options" recht genau wann man was einstellen sollte. und ja, zwischen solchen mit 2 und 4 beinen ist ein unterschied. das eine sind quarze (2 beine), das andere quarzoszillatoren. und jetzt erstmal ab ans datenblatt lesen
Ich habe ja einen externen Oszillator mit der Frequenz 4Mhz, warum sind dann CKSEL1..3 nicht gesetzt? Im Tutorial wird ja auch ein externer Quarzoszillator verwendet.
lies doch einfach mal im datenblatt nach! das kann doch nicht so schwer sein!! da steht: External Clock: CKSEL3..0: 0000
Ich HAB im Datenblatt nachgelesen, und ich hab es auch wie im Tutorial beschrieben gemacht, aber Fakt ist, dass sich der AVR nicht mehr ansprechen lässt. Weisst du vielleicht sonst noch etwas, was ich falsch gemacht haben könnte? Hast du dir schonmal das Bild weiter oben angeschaut? So hab ich es gemacht, ist das falsch? Gruß Martin
Ich hatte den Quarzoszillator and XTAL1? anstatt XTAL2 angeschlossen.
Hallo ! Ich lese mich gerade in das Buch "AVR" von Roland Walter ein. Dort steht auf Seite 37 folgende Bemerkung: ..Noch gemeiner ist das Fus-Bit RSTDISBL (ResetDisable). Damit wird der Reset-Eingang abgeschaltet und als normaler I/O-Pin PC6 frei. Weil eine SPI-Programmierung aber stehts mit einem Reset-Impuls eingeleitet wird, müßten Sie nach einer Änderung des RSTBISBL-Bits Ihren AVR (Anmerkung: mega8)erst einmal beiseite legen. Das Zurücksetzen dieses Bits ist nur im Parallel-Brennmodus möglich. Das STK 500 beherrscht diesen Brennmodus... Ich hoffe, Sie kommen damit weiter.
Hi Luhmer, >Das STK 500 beherrscht diesen Brennmodus... trotzdem kann man sich in so einem Fall leicht und fast umsonst auch selberchelfen. WENN man nicht nur gerade einen EINZIGEN Mega8 besitzt: http://www.e-lab.de/phpBB2/load.php?id=9 Damit habe ich schon einige Mega8 durch den High Voltage Parallel Programming Mode wieder aktivieren können. Schöne Grüße Gunter
"Ich hatte den Quarzoszillator and XTAL1? anstatt XTAL2 angeschlossen." laut tutorial soll der taktgeber doch an XTAL1 - oder seh ich falsch? ciao peter
@luhmer: die angaben wie man den reset-pin wieder umdefiniert stehen sehr genau schritt für schritt im datenblatt des jeweiligen uC. alles was man braucht ist ein anderer controller und ein bisschen zeit - braucht man allerdings nur falls sich nicht jmd vorher schon die arbeit gemacht hat aber kann ja mal sein, dass man nichts findet @demerzel: nein, siehst du nicht
@tobi Darf ich dich noch was fragen, will deshalb keinen neuen Thread aufmachen: .include "4433def.inc" ;Definitionsdatei einbinden, ggf. durch ;2333def.inc ersetzen ldi r16, 0xFF ;0xFF ins Arbeitsregister r16 laden out DDRB, r16 ;Inhalt von r16 ins IO-Register DDRB ausgeben ende: ldi r16, 0b11111000 ;0b11111100 in r16 laden out PORTB, r16 ;r16 ins IO-Register PORTB ausgeben nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ldi r16, 0b00000000 out POrTB, r16 rjmp ende ;Sprung zur Marke "ende" -> Endlosschleife Eigentlich müssten die angeschlossenen LEDs blinken oder? Weil nop verzögert doch das Programm?
mach einfach 2 verschachtelte schleifen. eine bis 255 und eine bis ca. 10. dass ist übersichtlicher und besser anpassbar. spätestens wenn du mal was mit schnellerem takt machst wird das mit nop's unhandlich. lieber gleich richtig angewöhnen :) ach ja, ausserdem schaltest du sofort nach dem ausschalten wieder an. besser sichtbar wird das blinken noch wenn du auch nach dem zweiten out eine pause einfügst
so z.b. einfach anstatt der nop's einfügen. ein bisschen mit dem wert in r17 rumprobieren um zu gucken was du brauchst push r16 push r17 ldi r17, 0x05 loop1: ldi r16, 0xff loop2: dec r16 brne loop2 dec r17 brne loop1 pop r17 pop r16
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.