Forum: Mikrocontroller und Digitale Elektronik AVR (speziell ATtiny13) Port B will nicht so richtig


von Transi (Gast)


Lesenswert?

Sehe gerade vor lauter Bäume den Wald nicht mehr und google hilft mir 
auch nicht wirklich weiter, obwohl ich meine das Problem sei mir schon 
mal untergekommen.

Habe schon einige male mit ATMEGA8 und ATMEGA32 gearbeitet. Dabei habe 
ich immer die SPI Schnittstelle zum flashen verwendet und die Pins sonst 
nicht verwendet.

Beim Attiny13 kann man sich dies mit den 5 Portpins natürlich nicht 
erlauben. Nur ich kann speziell auf den PIN B1 in meinem Programm nicht 
zugreifen.

Dies habe ich programmiert:

#define INPUTMASK  0x02
#define KALIBRIERUNG  0x00

….

unsigned char byMode;
…..
DDRB = 0x10;  //PB4: Out PB3 ...PB0: In
PORTB = 0x03;  //PB4 = 0 PB3, PB2 kein Pull Up, PB1, PB0 mit Pull Up

byMode = PINB;
byMode = byMode  & INPUTMASK;  //PB1 isolieren
if (byMode == KALIBRIERUNG)
{
  //Abgleich Mode
}
else
{
  //Run Mode
}

-----

Lock und Fuse Bits befinden sich in der default Stellung.

Der Port B1 kann mit einem Jumper auf GND gezogen werden.

Das Problem ist nun, dass der Port B1 gar nicht als Input arbeitet. 
Jedenfalls kommt am offenen Port Pin B1 „0 Signal“ heraus (also nichts 
mit Pull Up) und das Programm landet in der If Abfrage immer im Abgleich 
Mode, ließt also eine 0 ein.

Falls jemand sieht was wahrscheinlich offen vor mir liegt, ich aber 
einfach nicht erkenne, bitte ich um einen kurzen Tipp.

Herzlichen Dank

von Falk B. (falk)


Lesenswert?

@ Transi (Gast)

>Beim Attiny13 kann man sich dies mit den 5 Portpins natürlich nicht
>erlauben. Nur ich kann speziell auf den PIN B1 in meinem Programm nicht
>zugreifen.

>Das Problem ist nun, dass der Port B1 gar nicht als Input arbeitet.

Doch.

>Jedenfalls kommt am offenen Port Pin B1 „0 Signal“ heraus (also nichts
>mit Pull Up)

Was hängt denn aussen noch an dem Pin dran?

Poste den ORIGINALEN Quelltext als Anhang und nicht abgeschriebene 
Fragmente.

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.