mikrocontroller.net

Forum: Compiler & IDEs C- Code und ATTiny45 vertragen sich nicht.


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem ich nun schon das ganze Board 3x durchgelesen hab und nichts 
finden kann, was mir hilft, hoffe ich, dass sich jemand im Board findet, 
der meinen Fehler findet.

Die Schaltung mit einem ATTiny45 soll eine Lampe per PWM, eine Gruppe 
LEDs ansteuern sowie die Akkuspannung überwachen, die Temperatur 
überwachen und durch einen Reedschalter gesteuert werden - dass ist 
zumindest mal das Ziel ;-).

PB0 - PWM
PB1 - LEDs
PB2 - Spannungsüberwachung
PB3 - Temperatur
PB4 - Schalter

Mein Problem: Nach dem programmieren des ATTiny leuchtet die LED an PB1 
(sollte sie eigentlich noch nicht) - der Schalter lässt sich dafür 
jedoch gar nicht benutzen.

Hat irgendwer ne Idee?

Grüße!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super - soll man Fehler finden ohne Programm kennen zu dürfen.

Autor: Christian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Oh, sorry, hatte es eigentlich angehängt...

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Funktion Reedschalten scheint mir doch reichlich sinnfrei zu sein. 
(PINB & 0x00 ) ist immer false.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis!

Irgendwann sind meine Versuche wohl in Verzweifelung übergegangen - habs 
ersetzt:   if ( !(PINB & (1 << PINB4)) )

Im Simulator passts - nur auf dem Board läufts leider nicht (ISP - 
Programmierung über mySmartUSB).

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist falsch:

PORTB &= ~((1 << PB0) | (1 << PB1));//an Eingang PB4 wird der Pull-Up 
Widerstand aktiviert (Schalter an GND)

Pullups sind aktiviert, wenn der Port high gesetzt wird.
So sollte es funktionieren:

PORTB = 0b00010000;    // Pullup B4 ein


Grüße,

Peter

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Peter Diener:

Vor der von dir bemängelten Zeile steht diese:
> PORTB = 0xff;

Code und Kommentar sind zwar etwas unglücklich formuliert, aber auch bei 
seinem Code ist PORTB4 auf High.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachts drüber schlafen und morgends nochmal ins Datenblatt des ATTiny 
schaun hilft doch manchmal...wenn man den falschen Port anspricht, gehts 
halt einfach nicht...

Sorry und danke für die Mühe!

Schönen Sonntag!

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.