Hallo, ich habe folgendes Probelm: Also ich habe den Mega16 und habe ihn in die versuchsplatine(die ausm shop) gesteckt! Zwichen GND und Vcc liegen 5Volt an. Nun wollte ich das mit den LED's aus dem Tut ausbrobieren und habe das Beispielprogramm in den Mega16 geladen. nur leider liegt zwich PB0 und VCC 0 Volt(200mv) an was mich aber wundert ist das zwichen PB0 und GND ungefähr 4Volt spannung anliegt! Wäre euch echt dankbar wenn mir jemand sagen könnte was ich Falsch gemacht habe! Ich habe auch das Program aus dem Tut mal im AVR-Studio Debuged und bis zur Enlos-Schleife funktioniert auch alles super aber dann wird PB4 0 und PINB0-7 wird 1 Also ich versteh gar nix mehr und hoffe das mir jemand helfen kann!! Mfg Andy
Hallo Andy, hast du das Programmm abgeändert auf Mega16? Im Programm steht: .include "4433def.inc" das must du ändern in: .include "m16def.inc" Wann liegen die von dir genannten Spannungen an? Gruß, Arno
Ja ich habe die Include datei geändert! naja nachdem ich diese Prog aus dem tut mit geänderter includedatei auf den Mikroconntroller übertragen hat liegt zwich PB0 und vcc 0 Volt was ja normalerweise nicht sein sollte sondern 5V oder?? mfg Andy
ach ja was ich noch sagen wollte ist das zwichen PB1 und vcc auch 0 Volt ist obwohl ja nach dem Programm dort genauso 5 V anliegen sollten
Ähm... normalweise werden die Spannungen gegen GND gemessen. Dann werden Dir auch 5 V angezeigt.
Hallo, man mißt Spannungen eigentlich gegen Masse bzw GND und nicht gegen Plus 5 Volt. Ich nehme an du meinst dieses Programm. ---------------------------------------------------------------- .include "m16def.inc" ;Definitionsdatei einbinden, ldi r16, 0xFF ;0xFF ins Arbeitsregister r16 laden out DDRB, r16 ;Inhalt von r16 ins IO-Register DDRB ausgeben ldi r16, 0b11111100 ;0b11111100 in r16 laden out PORTB, r16 ;r16 ins IO-Register PORTB ausgeben ende: rjmp ende ;Sprung zur Marke "ende" ----------------------------------------------------------------- In diesem Programm wird zuerst PortB als Ausgang definiert. Dann wird PortB Bit-0 und Bit-1 auf Null gesetzt. Dadurch werden diese Ausgangspins gegen Masse gezogen und die LED welche über einem Widerstand an *5Volt geschaltet ist sollte leuchten. Gruß, Arno
ja genau das Programm ^^ Also nur noch mal verständnisshalber, wenn also PORTB Bit-0 NULL ist dann sollte zwichen PORTB Bit-0 und vcc 5 VOLT anliegen? Weil PortB ist dann Masse? Wenn ich das Mache dan leuchtet nix?wenn ich aber an gcc und GND anschließe dann leuchtet die LED(was also bedeutet das die LED funktioniert und die Spannung auch da ist) Sollte ich was falsch verstehen dann klärt mich doch butte nochmal auf Mfg Andy
Achso un wenn ich zwich PortB bit-1 und GND MESSE dann sind dort 4,07 Volt
Hast du die Diode richtigherum gepolt? Die Kathode an den Port, die Anode an den Widerstand, Den Widerstand an +5 Volt.
Ja hab ich! Ich denke das das ein Software fehler ist, aber ich weis es nicht, nur eigentlich kann es nicht sein es müsste gehen! Also wenn ich den conntroler Zurücksetze also nix im Flash ist bzw alles FF dann ist der selbe zustand wie wenn ich das Programm in den Flash geladen Habe Ich versteh gar nix
Hmmm.. wenn das programmieren geht, dann sollte das Programm auch laufen, denn so kompliziert ist es js nicht. :-) Also nochmal bei laufendem Programm messen: 1. Messgerät Minusstrippe an Masse und dort lassen 2. Plus-Strippe an PortB0 ; sollte nahezu Null Volt sein 3. " " an PortB1 ; sollte Nahezu Null Volt sein 4. " " an PortB2 bis B7 ; sollte nahezu +5 Volt sein 5. Led an PortB0 über 1k Widerstand an +5V ; sollte leuchten Funktioniert das so?
Ok ich hab das jetzt gemacht! 1. Messgerät Minusstrippe an Masse und dort lassen 2. Plus-Strippe an PortB0 ; zeigt 4.07 VOLT 3. " " an PortB1 ; zeigt 0.407 VOLT 4. " " an PortB2 bis B7 ; zeigt 0.407 VOLT Mfg Andy
Hallo, OK hab ich gemacht und da wird genau das selbe angezeigt....ich hoffe doch nicht das das ding Kaputt ist Mfg Andy
Achso ich habe die Fuse-Bits so gesetzt wie es für den Amtel 8 im Tut angegeben ist. Vieleicht ist da was falsch! Mfg Andy
Hallo, bin wieder da. Ja leider ist da was falsch, du hast die CKSEL3..0 alle auf Null gesetzt und das bedeutet externer Takt. Diese Fusebits hättest du alle auf 1 setzen müssen für externen Quarz. Du hast im Moment keinen Takt, also kannst du nicht umprogrammieren. Dazu brauchst du einen externen Oszillator, dieser muß an XTAL1 angeschlossen werden. Der Quarz auf deiner Platine muß dazu vorübergehend entfernt werden. Hast du einen Quarzoszillator oder irgend eine Möglichkeit einen Takt zu erzeugen? Ein NE 555 Timer-IC oder einen Frequenzgenerator? Die Frequenz braucht nicht genau zu sein nur so ca. 1 Mhz. Gruß, Arno
Guten morgen, na das sind ja keine Guten nachrichten. Ja ich kann sicherlich nen 1Mhz Takt erzeugen. Hab auf Arbeit nen Funktionsgenerator. Naja also ich werd das mal machen. Und ich dachte das ist wie beim Amtel 16. Naja sollte mir vieleicht mal das Datenblat anschauen ;-) Danke für eure Hilfe! @Conlost kannst du mir vieleicht deine E-mail adresse geben? Mfg Andy
Hallo Andy, gestern hatte ich wohl einen ganz schlechten Tag, da hat mir jemand einen C-Code untergejubelt, davon bekomme ich immer Kopfschmerzen und einen Knoten im Hirn. :-) Ich habe mir das alles nochmal angeschaut und festgestellt, das ich da etwas durcheinandergekommen bin. Im Tutorial wird im Text gesagt, das die Fusebits auf externen Oszillator eingestellt werden sollen. Auf dem Schaltbild ist ja auch ein externer Oszillator eingezeichnet. Bei den Yaap Beispielen ist aber zuerst gezeigt wie die Einstellung für internen RC-Oszillator aussieht und dann wie eingestellt werden soll. Diese Einstellung ist aber nicht für einen externen Oszillator, sondern für einen externen Quarz. Also genau das was du ja auf deiner Platine hast. Die Frage ist nun aber, konntest du diese Einstellung vornehmen, oder ging das nicht weil an deiner Schaltung schon ein Quarz mit den beiden Kondensatoren angeschlossen war. Um das festzustellen könntest du mal den Quarz und die Kondensatoren entfernen, dann könnte der interne RC-Oszillator wieder arbeiten, falls die Einstellung noch die Werksseitige ist. Ich hoffe, das ich nun nicht zuviel Verwirrung gestiftet habe. Gruß, Arno P.S. e-mail siehe oben
Na Nu bingrad nach hause gekommen und wolte das ausprobieren doch nun kom ich gar nicht mehr drauf...."init failed....." ich hatte heute früh die fuse-bits CKSEL3..0 auf 1 gesetzt. da ging aber noch alles.. und als ich eben zurückgekommen bin und anschalte da kann ich nicht mehr connecten! was denn nun?? Mfg Andy
Hallo, bin auch grade eben nach hause gekommen. Heißt das, du hast die Fusebits so gesetzt wie im Tutorial auf dem zweiten screenshot zu sehen ist? Also CKSEL3...0 ohne Häkchen und danach ging alles? Gruß, Arno
Ja das habe ich und da konnte ich noch sachen aud den micK schieben doch jetzt nach dem ich nach hause gekommen bin komt alst immer der fehler Andy
ahm wart mal mein vorhergehendes Post is falsch "Heißt das, du hast die Fusebits so gesetzt wie im Tutorial auf dem zweiten screenshot zu sehen ist? Also CKSEL3...0 ohne Häkchen und danach ging alles?" Also ich habe es so gesetzt wie du es gesagt hattest "Diese Fusebits hättest du alle auf 1 setzen müssen für externen Quarz." Naja und als ich nach hause kamm ging nix mehr
Also um mal nen bissle klarheit reinzubringen ich benutze yaap und wenn ich in obrigen Post meinte 1 dann meinte ich das das Kästchen Markiert ist also Schwarz! nicht das wir noch aneinander vorbei reden :-) Mfg Andy
Hallo, da haben wir wohl aneinander vorbei geredet. Aber das bekommen wir noch hin, ich gebe nicht so schnell auf. :-) Du hast also CKSEL3...0 angeklickt, das bedeutet du hast diese Fuses gesetzt. Eine gesetzte Fuse bedeutet aber, sie ist auf NULL gesetzt. Eine gelöschte bzw nicht gesetzte Fuse ist EINS. CKSEL "0000" bedeutet externer Oszillator. Deshalb geht nun nix mehr. Also Quarz und Kondensator von Pin XTAL1 entfernen und einen externen Takt an den XTAL1 Pin anlegen. Dann in Jaap alle Häkchen wieder wegnehmen von CKSEL3..0 wie auf dem zweiten screenshot abgebildet und programmieren. Damit hast du auf externen Quarz eingestellt. Den Quarz und den Kondensator wieder an XTAL1 löten und damit sollte es dann wieder gehen. Ob dein Programm dann läuft, werden wir dann sehen. Gruß, Arno
Ok dann werd ich das machen....kan aber nen paar tage dauern weil ich zur zeit nicht auf arbeit bin. Aber ich werd dann mal zu enm Freund gehen vieleicht hat der einen zuhause.... Danke für deine Hilfe
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.