Sinnvolle Pinbelegung vom Mega8 mit LCD und ADC

Gast #105822
Lesenswert?
• ▲
▼
Hallo,

ich möchte mit dem Codevision C Compiler ein kleines Programm
schreiben, welches mehrere ADCs und ein LCD verwenden soll.
Dazu möchte ich die lcd.h benuten.
Diese lcd.h benötigt allerdings einen 8 Bit Port.
Allerdings fällt mir kleine Lösung ein, welchen ich da nehmen soll.
PortB (PB8 und PB7) ist durch das Quarz belegt und PortC ist durch die
ADCs belegt.

Mache ich da einen Denkfehler, oder geht das wirklich nicht so einfach?
Gast #105823
Lesenswert?
• ▲
▼
Du musst ja kein 8Bit Port verwenden. Wuerde ich sogar im leben nicht
machen, eben deshalb weil du dann unnuetz Beine verschwendest. Die
Controller kennen auch einen 4Bit Mode. Allerdings brauchst du noch
wenigstens zwei Steuerleitungen, unter 6Pins wirst du es nicht
schaffen.

Ich verwende daher gerne eine andere Loesung. Bau dir eine kleine
Platine mit einem Display und einem PCF8574. Das ist ein I2C nach
Parallel Wandler. Daran verwendest du dann das Display im 4Bit Mode.
Dir bleiben dann immer noch zwei Bits die du entweder fuer zwei Taster
oder zum einschalten der Displaybeleuchtung verwenden kannst.

Sowas habe ich immer rumliegen und kann es ganz nach Bedarf an jedem
meiner Controller anstecken. Selbst wenn die fertige Schaltung spaeter
kein LCD braucht, es ist fuer die Fehlersuche immer ganz praktisch wenn
man zwischendurch mal was ausgeben kann.

Und wenn ich mal nur sehr geringe Ansprueche habe dann stecke ich an
denselben Port einfach ein DSM-822 von Pollin dran und stelle den
Source kurz um.

Olaf
Gast #105826
Lesenswert?
• ▲
▼
Danke für eure Antworten.
Es ging mir halt darum, möglichst einfach in die C Programmierung mit
dem AVR einzusteigen und daher wollte ich zuerst den fertigen lcd.h
benutzen.

Später möchte ich was mit I²C machen, aber für den Einstieg wollte ich
alles möglichst übersichtlich halten.

Der Link von crazy horse scheint genau die Lösung zu sein. Ich werde
das mal versuchen.
Gast #105830
Lesenswert?
• ▲
▼
Ich habs auch mal mit einem seriellen Schieberegister gemacht, weiss
garnicht mehr genau welches. Geht natuerlich auch.

Wichtig ist nur das man sich eine Funktion write_byte() schreibt auf
die dann alle anderen Libaryfunktionen aufsetzen. Wenn du dann naemlich
ein Schieberegister nimmst ruft die deine Funktion fuers Schiebereigster
auf, wenn du das Dingen direkt angeschlossen hast dann gibt es die Daten
eben nur so aus. Haengt es an einen Mega8 wird das eingebaute I2C
benutzt und soll es auf einem 90S2313 laufen dann wird I2C in Software
implementiert.
So kann man seine Arbeit immer weiterverwenden weil du immer nur eine
Funktion aendern musst.

Olaf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren