Forum: Mikrocontroller und Digitale Elektronik Input auslesen


von da-rula (Gast)


Lesenswert?

hallo ich stehe gerade irgendwie auf dem schlauch...
kann mir gerade einer helfen wie ich den PORTC Input2 eines Atmega 32 
auslesen kann?  Ich möchte quasi einen näherungsschalter auswerten ob 
dieser ein High oder Low Signal hat!

von Patrick B. (p51d)


Lesenswert?

wie wärs mit:
1
uint8_t data = 0;
2
data = PORTC & (1 << 2);
3
4
if(data){
5
}
6
else{
7
}

von Dietrich L. (dietrichl)


Lesenswert?

Patrick B. schrieb:
> wie wärs mit:
>...

Nein, PORTC ist der Ausgang. Der Eingang wird mit PINC abgefragt.

von Spess53 (Gast)


Lesenswert?

Hi

>data = PORTC & (1 << 2);

PINC ist das Eingangsregister. Außerdem muss JTAG deaktiviert werden, 
denn das benutzt PORTC2.

MfG Spess

von da-rula (Gast)


Lesenswert?

irgendwie klappt das nicht so richtig ich lasse 5v über einen schalter 
laufen und dann gehe ich in den Input aber wenn ich es mir über eine 
Anzeige anzeigen lasse ob der Wert 1 oder 0 ist dann tut ich nix!
habe das obige data Beispiel ausprobiert!

:(

von troll (Gast)


Lesenswert?

Kompletten Quellcode, Schaltplan und evn Foto vom Aufbau 
(Bildformate) zeigen.

Pullup/down dran?

von da-rula (Gast)


Lesenswert?

also ich habe keine  weiteren wiederstand dran aber das signal ist 
eindeutig null oder 5v beim Schalten!

Quellcode habe ich im prinzip nur den obigen !

uint8_t data = 0;
data = PORTC & (1 << 2);

if(data)
{
x=1
}
else
{
x=0
}



und das x lass ich mir dann über sprintf (...) auf ein array schreiben
und später mit lcdstring ausgeben..

von Hmm (Gast)


Lesenswert?

>Quellcode habe ich im prinzip nur den obigen !
Nur das der leider so weder compiliert wird.

Bringe vollständigen compilierbaren Code und einen Schaltplan und ein 
Foto vom Aufbau. Sonst wird das nichts.

von holger (Gast)


Lesenswert?

>data = PORTC & (1 << 2);

PINC, PINC, PINC, PINC, PINC, PINC, PINC

Nicht PORTC verdammt noch mal.

von Martin K. (maart)


Lesenswert?

holger schrieb:
> Nicht PORTC verdammt noch mal.

Vielleicht will er gucken, ob die Pullups eingeschaltet sind?

jetzt aber schnell weg hier....

von Dietrich L. (dietrichl)


Lesenswert?

da-rula schrieb:
> also ich habe keine  weiteren wiederstand dran aber das signal ist
> eindeutig null oder 5v beim Schalten!

Dennoch brauchst Du einen W_i_derstand nach 0V, sonst ist das Ergebnis 
Zufall oder geht nur mit angeschlossenem Messgerät ;-(

Alternative: Schalter nach 0V und internen Pull-Up einschalten.

Gruß Dietrich

von Patrick B. (p51d)


Lesenswert?

Dietrich L. schrieb:
> Nein, PORTC ist der Ausgang. Der Eingang wird mit PINC abgefragt.

Ups, da habe ich wohl etwas von AVR, PIC und STM durcheinandergebracht.

So sollte es gehen:
1
uint8_t data = 0;
2
3
data = PINC & (1 << 2);
4
5
if(data != 0){
6
}
7
else{
8
}

von Spess53 (Gast)


Lesenswert?

Hi

Hast du das JTAG-Interface abgeschaltet?

MfG Spess

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.