Forum: Mikrocontroller und Digitale Elektronik IO atmega88 funktioniert nicht?


von Felix (Gast)


Lesenswert?

hi zusammen,

mache gerade meine ersten erfahrungen mit einem atmega88 auf einem 
stk500. folgender code funktioniert einfach nicht:

#include <avr/io.h>
// #include <stdint.h>

int main(void)
{
    /* Setzt das Richtungsregister des Ports B auf 0xff
       (alle Pins als Ausgang): */
    DDRB = 0xff;
    PORTB = 0x0f;

    /* DDRC |= ( 1 << PC5 ); //PC0 Ausgang
    PORTC |= ( 1 << PC5 ); //Pull up an */

    while (1)
    {
    }


    return 0;
}

egal ob port b oder c, ich bekomme keine led zum leuchten.

vielen dank im voraus!

von TorstenS (Gast)


Lesenswert?

Hallo Felix,

versuch doch mal, die LED mit Low-Pegel zu aktivieren.

von Felix (Gast)


Lesenswert?

hi Torsten,

ja, versuche beide zustände, daher ja PORTB = 0x0f;. es hängen alle 8 
leds des boards an port b.

gruß
felix

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Flachbandkabel mit den 10-poligen Steckern richtig aufgesteckt?

Kannst du mal komplett auf PORTC wechseln? PORTB kann Sonderfunktionen 
haben, die möglicherweise stören bzw. auf dem STK500 berücksichtigt 
werden müssen (Taktquelle, ISP-Programmierung).

    DDRC = 0xff;
    PORTC = 0x0f;

von Michael K. (mmike)


Lesenswert?

PC6 ist Reset. PC7 gibts nicht. Bleibt noch PC0 - PC5 ....

Versuchs mal mit Port D .... dann sollte es klappen ...

Grüße,
Michael

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Mess doch einfach mal die Pegel an diesem Port, an den unteren 4 Bits 
muesste ein High und an den oberen ein Low-Pegel messbar sein, d.h. dass 
die oberen 4 Bits (PB3-PB7) "leuchten".

Wie hast Du Dein Programm compiliert? Mit gcc? Falls ja, hast Du auch 
-mmcpu richtig gesetzt? Mehr Infos bitte... bist Du Dir sicher dass das 
Programmieren korrekt funktioniert?

Michael

von Felix (Gast)


Lesenswert?

hi,

kabel ist richtig gesteckt, bekomme auch das gleiche ergebnis, wenn ich 
direkt an den beinchen des uc messe.

auch bei portc tut sich ebenfalls nicht.

danke und gruß

von Felix (Gast)


Lesenswert?

port D ist auch nicht besser, scheint wohl ein grundsätzliches problem 
zu sein...

von Felix (Gast)


Lesenswert?

mmcu ist atmega88 (so wie es sein soll), ich arbeite mit avrStudio und 
gcc.
gruß und danke!

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ich wuerde mal sagen da laeuft grundsaetzlich was verkehrt. Bist Du Dir 
sicher dass das Programmieren klappt? Tu mal irgendwas in die Schleife 
rein, leere Schleifen sind nich so hittig...

Du willst also sagen dass Dein Programm nicht laeuft, richtig?
Hast Du an den Watchdog gedacht? Fuses richtig gesetzt, Controller im 
richtigen Sockel im STK?

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.