www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SDA und SCL am ATmega8 als normale Portpins verwenden


Autor: PETER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe einen ATmega8. Hier ist mein Code:
#include <avr/io.h>
#include <util/delay.h>

int main()
{
    DDRC  |=  (1 << PC5) | (1 << PC4) | (1 << PC3);

    while(1)
    {
        PORTC ^= (1 << PC5);   // rote  LED
        PORTC ^= (1 << PC4);   // grüne LED
        PORTC ^= (1 << PC3);   // blaue LED
        _delay_ms(500);
    }
}
Dieser Code sollte eigentlich die drei LEDs (rot,grün,blau respektive 
PC5, PC4, PC3) zweimal pro Sekunde an- beziehungsweise ausschalten. 
Leider funktioniert das nur mit der blauen LED. Jetzt habe ich gesehen, 
dass PC5 und PC4 für I2C benutzt werden können. Liegt hier mein Fehler? 
Muss ich erst I2C deaktivieren?

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist nach reset deaktiviert. Wird erst per Software eingeschaltet.
Blöde Fragen:
-AGnd und AVcc angeschlossen?
-LEDs richtig herum?

Autor: PETER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>AGnd und AVcc angeschlossen?
Nein
>LEDs richtig herum?
Ja

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann mach das mal :-)

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wärs kein ATmega8, sondern ein grösserer, hätt ich JTAG auf der Liste 
der Verdächtigen.

Stopf mal zwischen den PORTC ^= ... jeweils ein Delay rein bzw. tausch 
die Abfolge der LEDs um. Wenn dann eine andere blinkt, liegts evtl. 
garnicht an der Hardware sondern möglicherweise am Compiler, dass der da 
Mist "optimiert"

Autor: PETER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe AVCC angelötet und bei der Gelegenheit nochmal die alten 
Lötstellen kurz aufgekocht. Jetzt funktioniert es. Ich weiß allerdings 
nicht, ob es am neu angeschlossenen AVCC liegt. Wofür sorgt das AVCC 
denn in diesem Fall?

Auf alle Fälle: Danke! :-)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für Strom. Am Port.

Schon kurios, wieviele Leute AVcc für überflüssig halten wenn sie den 
ADC nicht brauchen.

Autor: Bascon-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[quote]
Schon kurios, wieviele Leute AVcc für überflüssig halten wenn sie den
ADC nicht brauchen.[/quote]
Sry aber XD. Für I²C brauchte ich nicht mal AGND und AVCC.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVCC und AGND müssen immer angeschlossen werden. Entweder über Filter 
(wenn benötigt) oder einfach an VCC und GND.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist AGND? Ist das einfach der GND-Pin, welcher neben AVCC liegt?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.