Hallo Forum und werte Mitbastler, Habe eine erste Schaltung mit dem Tiny10 aufgebaut. Als IDE benutze ich das AVR-Studio 5.01136. Das Programmieren via ISP MK II über TPI funktioniert anscheinend problemlos. Zumindest wird kein Fehler ausgegeben und auch das Verify läuft ohne Fehler durch. Ich kann beispielsweise auch das Clock-Out aktivieren, woraufhin die Clock tatsächlich am entsprechenden pin erscheint. Von daher gehe ich davon aus, dass die Programmübertragung und Speicherung im Chip ohne Fehler abläuft. Das Problem: Ich habe ein simples Assemblerprogramm geschrieben welches einfach nur einige Portpins toggeln soll. Es passiert aber nichts dergleichen. Haber bereits diverse Versionen mittels SBI bzw. ldi + out probiert, aber bisher hat nichts erfolgreich funktioniert. Über euren Rat freue ich mich und bedanke mich im Vorraus, Weiss momentan nicht woran es noch liegen kann. Tueftler Das Programm: .org 0x00 ldi r17,(1<<PB0)|(1<<PB1) ldi r18,(1<<DDB1)|(1<<DDB0) out PORTB,r17 out DDRB,r18 loop: sbi PORTB,(1) sbi PORTB,(0) nop cbi PORTB,(1) cbi PORTB,(0) rjmp loop
Ich weiß nicht, ob man so einfach bei Adresse 0x0000 ein Programm reinlegen darf, da dort normalerweise der Resethandler und im Anschluss die Interruptvektoren liegen. Schon mal ein fertiges Beispielprogramm ausprobiert?
Wenn du auf PORTB schreibst, bevor du die Pins auf Ausgang stellst, aktivierst du die internen pull-ups, beim Messen müssten die Pins ständig High-Pegel anzeigen. Einfach das 'out DDRB...' vorziehen, dann sollte es laufen. Mit Adresse 0x0000 ist kein Problem, solange keine Interrupts aktiviert sind. Mark
Hi >Ich kann beispielsweise auch das Clock-Out aktivieren, woraufhin die >Clock tatsächlich am entsprechenden pin erscheint. Das hat aber nichts mit dem Programm zu tun. >Von daher gehe ich davon aus, dass die Programmübertragung und Speicherung >im Chip ohne Fehler abläuft. Schon mal ein Verify gemacht? Das Programm sollte den von dir gewünschten Zweck erfüllen. MfG Spess
Hi >Wenn du auf PORTB schreibst, bevor du die Pins auf Ausgang stellst, >aktivierst du die internen pull-ups, beim Messen müssten die Pins >ständig High-Pegel anzeigen. >Einfach das 'out DDRB...' vorziehen, dann sollte es laufen. Das ist egal. MfG Spess
Tueftler schrieb: > einfach nur > einige Portpins toggeln soll. Es passiert aber nichts dergleichen. Wie erfolgt die Messung? Wie sind die fuses gesetzt? Sprich welche Taktquelle ist eingestellt?
Tueftler schrieb: > Ich habe ein simples Assemblerprogramm geschrieben welches einfach nur > einige Portpins toggeln soll. Es passiert aber nichts dergleichen. Woran machst du das fest? Dir ist hoffentlich klar, dass deine Pins rasend schnell toggeln werden. Ohne Oszi wirst du da nichts sehen.
Mark L. schrieb: > Wenn du auf PORTB schreibst, bevor du die Pins auf Ausgang stellst, > aktivierst du die internen pull-ups, beim Messen müssten die Pins > ständig High-Pegel anzeigen. Ist wurscht. In dem Moment, in dem er den Pin auf Ausgang programmiert, gibt es keinen Pullup mehr.
spess53 schrieb: > Das ist egal. Karl Heinz Buchegger schrieb: > Ist wurscht. Ihr habt ja recht. SORRY! Vielleicht eine blöde Frage, aber soll ich meinen Beitrag besser löschen, bevor den Murks, den ich da von mir gegeben habe, noch jemand glaubt? Hab' keine Ahnung von Foren, aber gesehen, dass es wohl möglich ist. Mark
Mark L. schrieb: > aber soll ich meinen Beitrag besser > löschen Nein, es reicht, wenn du deinen Denkfehler kurz erläuterst. Falls dann mit der Suche jemand drauf stößt, macht's bei ihm im Kopf möglicherweise auch "Plong!", und er hat einen Aha-Effekt.
Mark L. schrieb: > spess53 schrieb: >> Das ist egal. > > Karl Heinz Buchegger schrieb: >> Ist wurscht. > > Ihr habt ja recht. SORRY! > > Vielleicht eine blöde Frage, aber soll ich meinen Beitrag besser > löschen, lass es ruhig > bevor den Murks, den ich da von mir gegeben habe, noch jemand > glaubt? Fehler zu machen ist Teil des Lernprozesses. Anderer Leute Fehler zu sehen kann einem manchmal zu Ideen verhelfen. Keine Sorge um deine Reputation. Das Forum ist voll mit Fehlern von mir. Wenn jemand einen Fehler entdeckt, dann antworte ich mit "Danke für die Korrektur" und gut ists.
Hallo und vielen Dank erstmal für eure zahlreichen Antworten! 1. Ich habe das mittels Oszilloskop verifiziert, dass dieses Programm nicht ausgeführt wird. 2. Den Oszillator output habe ich auch mittels Oszilloskop verifiziert und es sind ziemlich genau 8MHz, wie es auch sein sollten. . . . Habe jetzt eben mal spasseshalber den Programmer zwischendurch abgezogen und wieder angesteckt und siehe da... es funktioniert. Anscheinend wird er mc nicht ordentlich resetet nach dem Programmiervorgang. Sowohl das an+abstecken als auch ein Power off+on resetten ordnungsgemäß. Also vielen Dank nochmals für eure Unterstützung, Tueftler
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.