Forum: Mikrocontroller und Digitale Elektronik Tricksen mit Ports


von Willi S. (father_smu)


Lesenswert?

Hallöle

Ich habe einen Atmega16 µC und steuere 4 Schrittmotoren (PORT D), 6 
Status-LEDs (PORT C), 6 Buttons (PORT B) und ein LCD Modul (PORT A) an.

Der µC hat nur diese 4 Ports.
Jetzt habe ich 4 Lichtschranken gekauft und erst jetzt fällt mir auf das 
ich zwar an einigen Ports noch freie Pins hätte, diese ja aber einzeln 
nicht für die Lichtschranken nutzen kann, meiner Meinung nach.

Gibt es irgend eine Möglichkeit diese 4 Lichtschranken noch irgendwie 
mit in das System meines Atmega16 zu integrieren?

PS: Die ganze Platine ist schon voll funktionstüchtig, die idee mit den 
Lichtschranken dient nur zur aufrüstung.

von Karl H. (kbuchegg)


Lesenswert?

Willi S. schrieb:

> Jetzt habe ich 4 Lichtschranken gekauft und erst jetzt fällt mir auf das
> ich zwar an einigen Ports noch freie Pins hätte, diese ja aber einzeln
> nicht für die Lichtschranken nutzen kann, meiner Meinung nach.

Warum sollst du das nicht können?
Natürlich kannst du das.


(Und falls das jetzt kommt. Ich denke nicht, dass deine Unterechungen 
der Lichtschranken so kurz sind, dass du unbedingt externe Interrupts 
dazu brauchst)

von Dennis (Gast)


Lesenswert?

Willi S. schrieb:
> diese ja aber einzeln nicht für die Lichtschranken nutzen kann, meiner
> Meinung nach

Denkfehler :-) Du kannst jeden einzelnen Pin nutzen wie du möchtest. 
Musst halt nur einfach entsprechend im Programm abfragen .

von Dennis (Gast)


Lesenswert?

Ups, Karl-Heinz war schneller :-)

von Krapao (Gast)


Lesenswert?

Wieso sollte man freie Pins nicht benutzen können?
Den Lichtschranken dürfte es egal sein, wo sie ihr Signal abliefern.

von Willi S. (father_smu)


Lesenswert?

Karl Heinz Buchegger schrieb:
> (Und falls das jetzt kommt. Ich denke nicht, dass deine Unterechungen
>
> der Lichtschranken so kurz sind, dass du unbedingt externe Interrupts
>
> dazu brauchst)

? Dich Lichtschranken werden jede 180° des Schrittmotors detektieren und 
da meine SM bis 1000rpm fährt ist das doch schon ne Leistung für die 
Lichtschranke, oder meintest du was anderes?

Ok das mit dem "einzeln Port direction ändern" kannte ich noch nicht :) 
Hab immer nur komplette Ports initialisiert.
Jetzt versuch ich gerade am ADC Port an LCD Modul Pins zu sparen... muss 
mich da noch bissl schlau machen was das Modul unbedingt an belegungen 
braucht

von unruh (Gast)


Lesenswert?

Krapao schrieb:
> Wieso sollte man freie Pins nicht benutzen können?
> Den Lichtschranken dürfte es egal sein, wo sie ihr Signal abliefern.

Das war früher mal. Die Lichtschranken sind mittlerweile so verwöhnt, 
dass sie nur noch an ein-und-dem-selben Port angeschlossen werden 
wollen.


So, und jetzt Spass beiseite, der Themenersteller möchte sicher gerne 
wissen, wie man die einzelnen Pins unabhängig vom Port auf I bzw. O 
programmiert.

Dazu wäre es sicher interessant zu wissen, in welcher Sprache er (du) 
programmier(s)t...

von Krapao (Gast)


Lesenswert?

Sind vielleicht Adventslichtschranken, die man an einem Ringport 
betreiben muss.

von dave_chappelle (Gast)


Lesenswert?

Ausmaskierung ist das Stichwort..

von Karl H. (kbuchegg)


Lesenswert?

Willi S. schrieb:
> Karl Heinz Buchegger schrieb:
>> (Und falls das jetzt kommt. Ich denke nicht, dass deine Unterechungen
>>
>> der Lichtschranken so kurz sind, dass du unbedingt externe Interrupts
>>
>> dazu brauchst)
>
> ? Dich Lichtschranken werden jede 180° des Schrittmotors detektieren und
> da meine SM bis 1000rpm fährt ist das doch schon ne Leistung für die
> Lichtschranke, oder meintest du was anderes?

Da gähnt doch dein µC nur müde darüber und löst zwischendurch noch ein 
paar teuflisch schwierige quadratische Gleichungen (tm: Douglas Adams)

> Jetzt versuch ich gerade am ADC Port an LCD Modul Pins zu sparen... muss
> mich da noch bissl schlau machen was das Modul unbedingt an belegungen
> braucht

Du hast doch 4 Pins frei, wenn ich richtig gezählt habe. Nutze sie, ist 
doch ganz einfach

AVR-GCC-Tutorial
AVR-Tutorial

> Ok das mit dem "einzeln Port direction ändern" kannte ich noch nicht :)

Dann wirds aber Zeit.

von spess53 (Gast)


Lesenswert?

Hi

Wenn du die Lichtschranken zusammen mit den Tastern zu einer 2x5 oder 
3x4 Matrix zusammenschaltest reicht ein zusätzlicher Pin.

MfG Spess

von Willi S. (father_smu)


Lesenswert?

unruh schrieb:
> So, und jetzt Spass beiseite, der Themenersteller möchte sicher gerne
>
> wissen, wie man die einzelnen Pins unabhängig vom Port auf I bzw. O
>
> programmiert.
>
>
>
> Dazu wäre es sicher interessant zu wissen, in welcher Sprache er (du)
>
> programmier(s)t...

Ich programmiere mit AVR Studio und zwar in C.

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.