Tricksen mit Ports

OP #2451627
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.
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)
Gast
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 .
OP
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
Gast
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...
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.
OP
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.