ATmega8: PortB.2 nutzen

Gast #47917
Hallo, ich hab ein kleines Problem. Und zwar kann ich nicht auf das 2Bit
von PortB zugreifen. Ich nehme an, da der Pin mehrfach belegt ist (PB2,
\SS und OC1B) muss ich dem Controller mitteilen, dass der Pin für
PortB sein soll.
Aber wie kann ich das machen??

Danke für Tips
Gast
Ich hab jetzt mal die Doku druchsucht. Ich nehme an, dass \SS aktiv
ist, und zwar ist das der Fall, wenn SPI als Slave aktiv ist (wenn ich
das richtig verstanden hab).

Leider weiß ich aber nicht, wie ich SPI deaktivieren oder zum Master
kann.
Vielleicht liegt der Fehler auch woanders. Ich hab folgendes Programm
zum testen:

while (1)
{
  PORTB= 0xff;
  delay(50);

  PORTB= 0x00;
  delay(50);
}

Das bringt LEDs am PortB zum blinken. Nur die 3 LED (also Bit 2) blinkt
nicht.
Gast
Hallo Philipp,
ob SPI als Master oder Slave arbeiten soll, steht im SPCR Register.
Datenblatt Seite 126. Dort kannst Du alles einstellen.

• Bit 4 – MSTR: Master/Slave Select
This bit selects Master SPI mode when written to one, and Slave SPI
mode when written
logic zero. If SS is configured as an input and is driven low while
MSTR is set, MSTR will
be cleared, and SPIF in SPSR will become set. The user will then have
to set MSTR to
re-enable SPI Master mode.

Gruß Mattias
Gast
Hallo, danke schonmal für eure Hilfe.
Leider hab ich immer noch keine Lösung.

Aber mir ist gerade aufgefallen, dass ich keinen 2. Bit von einem Port
zugreifen kann. Also bei PortB, PortC und PortD funktioniert jeweils
das 2.Bit nicht. Alle anderen funktionieren.
Ich kann mir irgendwie nicht vorstellen, dass das zufall ist. z.B.
PortC Bit 2 ist mit PC2 und ADC2 belegt, genauso wie Bit 0, 1 und 3.
Und die funktionieren.

Kann das ein defekt am IC sein??
Aber wieso ist dann immer das 2. Bit defekt? Arg, ich verzweifel nocht.
Gast
An deinem Programm ist nix falsch!
wenn es mit ASM geht scheint der Compiler schrott zu sein? Kein plan.
aber hin und wieder gibt es immer komische Konstellationen, geht mir
auch so :)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.