Forum: Mikrocontroller und Digitale Elektronik Sinnvolle Pinbelegung vom Mega8 mit LCD und ADC


von Bastian (Gast)


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?

von Olaf (Gast)


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

von crazy horse (Gast)


Lesenswert?


von Andreas Niermann (Gast)


Lesenswert?

Siehe Beitrag von Peter Dannegger in der Codesammlung für eine
Temperaturmessung mit DS.... Er verwendet ein Schieberegister 74HC164
und braucht dann nur 3 Ports beim AVR. Ich habe es auch mit dem 74HC589
hinbekommen. Der PCF8574 wäre mir zu teuer...

Gruß

von Bastian (Gast)


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.

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

sehe gerade, dass die Dateien gar nicht dabei waren - hat wohl gar
keinen interressiert :-)

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

und die headerdatei.
die .h Datei ins inc-Verzeichnis, die .lib-Datei ins lib-Verzeichnis.
im Programm dann
#include <lcd_split.h>

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

wird Zeit für die Mittagspause :-(

von Olaf (Gast)


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

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.