Forum: Mikrocontroller und Digitale Elektronik Anfänger: PB0 auf High


von Chris (Gast)


Lesenswert?

Hallo,

ich möchte gern meine letzte Anfängerfrage aus Thread "AVRISP mkII Pin 
1" neu formulieren:

Ich habe das folgende Program übertragen und versuche nun an PB0 High zu 
messen. Leider messe ich 0V. Der Port scheint auch garnicht als Ausgang 
geschaltet zu sein, weil eine LED von 5V -> PB0 nicht leuchtet (an 
echter Masse schon). Ich galaube das Programm wird garnicht ausgeführt.

Was habe ich übersehen? Bestimmte Fuse-Bits?
1
.include "m8.inc"
2
3
ldi r16, 0x00000001
4
out DDRB, r16
5
out PORTB, r16
6
7
loop:    rjmp loop

Ciao
Chris

von Michael U. (Gast)


Lesenswert?

Hallo,

womit arbeitest Du?
Bei mir heißt schon das include vom AVR-Studio m8def.inc

Außerdem, wenn Di wie schon im vorgen Thread bemängelt, wirklich 
0x00000001 geschrieben hast, wäre ich mir nicht 100% sicher, ob da 
wirklich die 01 übergeben werden, 0x00000001 ist immerhin ein 
32Bit-Wert, den Du da in ein 8Bit-Register lädst.

Entweder 0b00000001 für binäre Darstellung oder 0x01 oder $01 für hex 
Darstellung.

Gruß aus Berlin
Michael


von Chris (Gast)


Lesenswert?

Hallo,
schonmal Danke für die Antwort.
Sorry, habe einfach alle Fehler aus dem letzten Thread kopiert :-).
Hier das Programm wie es wirklich aussieht:
1
.include "m8def.inc" 
2
3
ldi r16, 0b00000001
4
out DDRB, r16
5
out PORTB, r16
6
7
loop:    rjmp loop

von Chris (Gast)


Lesenswert?

Ihc arbeite mit AVR Studio und AVRISP mkII.

von Michael U. (Gast)


Lesenswert?

Hallo,

ich kenne den AVRISP mkII nicht, gibt der sauber Reset wieder frei nach 
dem Programmieren (mal messen, ob wirlich H anliegt)?

Gruß aus Berlin
Michael

von Chris (Gast)


Lesenswert?

Ja, Reset ist danach wieder High.

von AVRFan (Gast)


Lesenswert?

Hmmm... wie taktest Du denn Deinen Controller? Externer 
Keramikresonator, externer Quarz, externes RC-Glied, externes Taktsignal 
oder interner Oszillator?  Wenn die Fuses nicht dazu passend gesetzt 
sind, läuft das gute Stück normalerweise erst gar nicht an.

Lies Dir auch mal diesen Artikel durch:

http://www.mikrocontroller.net/articles/AVR_Checkliste

von Chris (Gast)


Lesenswert?

Hallo,

Der mkII ließt:
"Int. RC Osc. 1MHz, Startup: 6 CK + 64ms".

Aber wenn der Atmega8 geflashed werden kann läuft er doch schon, oder?

von Chris (Gast)


Lesenswert?

Es ist nicht zu glauben!
Ich hatte das falsche HEX File geflashed!
Sorry für die Mühe die ich euch bereitet habe. :-(


Aber trotzdem schön, dass es bloss so ein triviales Problem war...
:-)

Ciao
Chris

von AVRFan (Gast)


Lesenswert?

>Der mkII ließt:
>"Int. RC Osc. 1MHz, Startup: 6 CK + 64ms".

Bestens :-)

>Aber wenn der Atmega8 geflashed werden kann läuft er doch schon, oder?

Das stimmt allerdings.

Probier sicherheitshalber mal einen anderen Port; vielleicht ist der 
Ausgangstreiber von PB0 aus irgendeinem Grund defekt (ein Kurzschluss 
läßt ihn über den Jordan gehen).

Lade mal dieses Programm:
1
.include "m8def.inc" 
2
3
ldi r16, 0b00001111
4
out DDRC, r16
5
6
ldi r16, 0b10101010
7
out PORTC, r16
8
9
loop:    rjmp loop
Damit hast Du dann an PORTC alle Kombinationen (Eingang/Ausgang, 
Pullupwiderstand enabled/disabled), und wenn Du mit Deiner LED die Pins 
abklapperst, sollte sie irgendwo leuchten.

von AVRFan (Gast)


Lesenswert?

>Ich hatte das falsche HEX File geflashed!

lach ... jo, sowas soll in den besten Familien vorkommen ;-)

Dann viel Spaß noch beim proggen.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Das ist beim AVRStudio etwas blöd gelöst. Wenn man ein neues Projekt 
öffnet, steht im Programmierfenster immer noch das alte Hex File drin. 
Hat mich auch schon einige zeit gekostet, bis ich da drauf gekommen bin.

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.