Forum: Mikrocontroller und Digitale Elektronik Atmega64, PortF und ADC...


von Christoph S. (mcseven)


Lesenswert?

Und noch eine Schwierigkeit. Ich habe am ADC analoge Sensoren hängen, 
was auch ganz gut tut. Möchte diese Sensoren jetzt per MOSFET (BSS123) 
aus- und einschalten, und habe die jeweiligen Gates an PORTF.2, PORTF.4 
PORTF.6 angeschlossen.

Analoge Eingänge sind der Rest, also PORTF.0, .1, .3, .5, .7

Die Definition sieht so aus:
PORTF = 0x00;
DDRF  = 0b01010100;

Trotzdem ändern PORTF.2 .4 .6 ihre Pegel nicht, wenn ich sie mit
PORTF |= (1<<2) oder PORTF &= ~(1<<2) bearbeite.

Komischerweise scheint aber das PORTF-Register (Abfrage im gleichen 
Schleifendurchlauf, (PINF & (1<<4)?) seinen Wert zu ändern, nur der
logische Pegel am Pin bleibt bei 5V.

Kann das jemand bestätigen oder mir zumindest sagen, was ich falsch 
mache?

Danke,
Christoph

von johnny.m (Gast)


Lesenswert?

Wie sind die Sensoren bzw. MOSFETs denn überhaupt angeschlossen? Ohne 
einen Schaltplan kann hier niemand Dein Problem nachvollziehen.

von Michael Wilhelm (Gast)


Lesenswert?

Schau mal nach, ob das JTAG noch aktiv ist. Das kann auch für 
Verwirrungen sorgen.

MW

von Uwe N. (ulegan)


Lesenswert?

Ist in den Fuses der ATmega103 Compatibility Mode abgeschaltet?
Wenn nicht funktioniert PORTF nur als analoger oder digitaler Eingang, 
aber nicht als Ausgang!
Also im Extended Fuse Byte das Bit 1 auf 1 setzen.

von Christoph S. (mcseven)


Lesenswert?

patsch natürlich, es war der JTAG. Mea culpa. Jetzt tuts :) 
Dankeschön...

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.