Forum: Mikrocontroller und Digitale Elektronik Tiny10: Programmieren geht, Programmausführen geht nicht


von Tueftler (Gast)


Lesenswert?

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

von Tilo (Gast)


Lesenswert?

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?

von Mark L. (Firma: TH Köln) (m2k10) Benutzerseite


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

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

von Volkmar D. (volkmar)


Lesenswert?

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?

von Karl H. (kbuchegg)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Mark L. (Firma: TH Köln) (m2k10) Benutzerseite


Lesenswert?

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Tueftler (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.