Von Atmega zu Atmega mit UART

Gast #2938309
Hallo liebes Tüftlerteam,

Ich will bei einer Steuerung auf einem Lcd im Standbymodus eine Uhr auf 
dem Lcd anzeigen lassen. Da der Hauptchip (Atmega8) durch die Steuerung 
schon so voll ist will ich nicht noch die Uhrsteuerung in ihn 
reinpacken. Ich hatte mir gedacht ein anderer Atmel Chip mit HW UART 
könnte die Uhr übernehmen und die Daten über den UART an den Hauptchip 
sendet und dieser zeigt die Uhr dann im Standby anzeigt.

Würde das gehen?

MfG Hannes
Hannes schrieb:
> Ich hatte mir gedacht ein anderer Atmel Chip mit HW UART
> könnte die Uhr übernehmen und die Daten über den UART an den Hauptchip
> sendet und dieser zeigt die Uhr dann im Standby anzeigt.

> Würde das gehen?
Sicher.

Aber meinst du wirklich, daß du damit etwas sparst?
Ich nehme an, einen Timer hast du sowieso. Dann packst du den 5-7-Zeiler 
"Uhr" damit rein. Das wird garantiert nicht länger als der Empfang und 
Aufbereitung über UART.

mfg.
Gast
Naja wenn mir einer sagen kann ob man mit einem Atmega16 2Stk 16*2 Lcd 
ansteuernkann (gleichzeitig) dann würd ich das machen aber ich glaub das 
geht nicht. Wollte insgesamt ne Motorsteuerung bauen mit 2 Kanälen und 
im Standby soll die Zeit angezeigt werden nur ich will die Zeitsteuerung 
nicht noch extra mit in einen Chip hauen.
Hannes schrieb:
> Naja wenn mir einer sagen kann ob man mit einem Atmega16 2Stk 16*2 Lcd
> ansteuernkann (gleichzeitig)

Gibt es einen Grund, warum das nicht gehen soll?
(ausser, das du die Pins nicht mehr hast und ansonsten auf eine 
SChieberegister-Lösung angehen müsstest).

> dann würd ich das machen aber ich glaub das
> geht nicht. Wollte insgesamt ne Motorsteuerung bauen mit 2 Kanälen und
> im Standby soll die Zeit angezeigt werden

und was macht das 2.te LCD?

> nur ich will die Zeitsteuerung
> nicht noch extra mit in einen Chip hauen.

Eine Uhr ist trivial.
Dein Hauptfehler:
Du denkst, die Dinge werden einfacher, wenn du mehr µC einsetzt.
Du könntest nicht falscher liegen! Die Dinge werden komplizierter, je 
mehr µC zusammenarbeiten müssen. Und das beginnt bereits bei 2 µC.
Sowas macht man nur, wenn die Not extrem groß ist. Und dann auch nur 
unter Protest.
Hannes schrieb:
> Timer1 geht schon für mür die PWM weg
Aber zwei hast du dann ja noch.
Ich will dir das nicht ausreden mit dem zweiten Controller. Aber solange 
sich das vermeiden lässt, solltest du das auch vermeiden. Da kann man 
sich viel Stress mit einhandeln. Und ob du nun einen Timer mit ISR oder 
eine UART-ISR hast, die das Hauptprogramm irgendwie veranlassen etwas 
auf das Display zu schreiben, ist Jacke wie Hose.

mfg.
Gast
Ok Danke schoneinmal

Also geplant war eigendlich auch insgesamt ein Atmega16 oder 32. Nur ich 
weiß nicht wie ich 2 LCDs gleichzeitig ansteuern kann deswegen wollte 
ich die beiten Kanäle einzeln aufbauen aber wenn das geht ist ja gut. 
Kann mir denn einer ein Beispiel oder ähnlich senden wo sowas 
erklärt/gezeigt wird?
(Ich benutze Bascom)

Danke schonmal

Hannes
Hannes schrieb:
> Ok Danke schoneinmal
>
> Also geplant war eigendlich auch insgesamt ein Atmega16 oder 32. Nur ich
> weiß nicht wie ich 2 LCDs gleichzeitig

"gleichzeitig" ist ein grßes Wort.

Mit einem Zeitversatz von ein paar Zehntel Millisekunden ist sicherlich 
immer noch ausreichend.
Für den Benutzer IST DAS GLEICHZEITIG. Für deinen µC ist das: erst das 
eine, dann eine Runde Karten spielen, kleines Nickerchen, dann das 
andere.

(Wir reden doch von Text-LCD. Oder?)


> (Ich benutze Bascom)
Nix gegen BASCOM. Aber wenn ich in vernünftiger Zeit von München nach 
Frankfurt fahren will, nehm ich auch nicht das Mountainbike - so toll es 
auch ist.
Hannes schrieb:
> (Ich benutze Bascom)
Shit. Nein ist schon OK.
Was ist denn das für ein Display?
Wie wird das angesteuert?
Normalerweise kannst du 100 Displays an einen Controller hängen. Die 
werden dann alle der Reihe nach angesteuert, wobei jeweils nur eine 
Leitung geändert werden muß. Normalerweise.

mfg.
Gast
>> Atmega16 2Stk 16*2 Lcd
>
>Natürlich geht das, warum soll es denn nicht gehen?

Ich hatte zum Spass schon mal drei 2x40 an einem 8 Bit Port;)

>(Ich benutze Bascom)

Hmmm.
Gast
Ach das heist ich kann 2  16*2 LCd als 16*4 definieren. oder wie ? Nur 
wie schließe ich das jetzt an? Ich kann doch nicht einfach die 
Datenleitung von den LCDs zusammen klemm (Db0 von Lcd1 an Db0 Lcd2, 
usw...). Wie macht man das?
Hannes schrieb:
> Ach das heist ich kann 2  16*2 LCd als 16*4 definieren. oder wie ? Nur
> wie schließe ich das jetzt an? Ich kann doch nicht einfach die
> Datenleitung von den LCDs zusammen klemm (Db0 von Lcd1 an Db0 Lcd2,
> usw...).

Natürlich kann man.
Das LCD, dessen E-Leitung getoggelt wird, das reagiert.

> Wie macht man das?
Tja. das dürfte jetzt in BASCOM mit seiner vorgefertigten 1-LCD Lösung 
etwas knifflig werden. Das liegt aber nicht am µC, es liegt nicht am LCD 
sondern es liegt daran, dass man mit BASCOM da dann einfach nicht mehr 
die Kontrolle darüber hat. (Meines Wissens. Aber das heißt nicht viel. 
Ich benutze BASCOM nicht. Mit jeder anderen Programmiersprache ist das 
nämlich ein Kinderspiel. Sofern man die Sprache beherrscht, 
selbstverständlich)
Gast
Nagut ok ich progge jetzt seit ich 12 bin mit Basic also seit 3 Jahren 
(C64) und fange grade erst mit C an deswegen. Kann mir zur eben schon 
gestellten Frage ein Bascomprofi helfen oder einer der auch mit Bascom 
zu tun hat?

MfG Hannes
Karl Heinz Buchegger schrieb:
> Hannes schrieb:
>> Ach das heist ich kann 2  16*2 LCd als 16*4 definieren. oder wie ? Nur
>> wie schließe ich das jetzt an? Ich kann doch nicht einfach die
>> Datenleitung von den LCDs zusammen klemm (Db0 von Lcd1 an Db0 Lcd2,
>> usw...).
>
> Natürlich kann man.
> Das LCD, dessen E-Leitung getoggelt wird, das reagiert.
>
>> Wie macht man das?
> Tja. das dürfte jetzt in BASCOM mit seiner vorgefertigten 1-LCD Lösung
> etwas knifflig werden. Das liegt aber nicht am µC, es liegt nicht am LCD
> sondern es liegt daran, dass man mit BASCOM da dann einfach nicht mehr
> die Kontrolle darüber hat. (Meines Wissens. Aber das heißt nicht viel.
> Ich benutze BASCOM nicht. Mit jeder anderen Programmiersprache ist das
> nämlich ein Kinderspiel. Sofern man die Sprache beherrscht,
> selbstverständlich)


Das behandelt den 2 Stück 16*2 Fall.
Ein 16*4 LCD ist meines Wissens auch in BASCOM kein Problem.
Hannes schrieb:
> Nagut ok ich progge jetzt seit ich 12 bin mit Basic also seit 3 Jahren
> (C64)

Dann mach dich auf was gefasst.
BASCOM hat nichts mit dem BASIC zu tun, das du kennst.

Wenn du denkst, deine C64-BASIC Vergangenheit hilft dir da in 
irgendeiner Art und Weise bei BASCOM weiter, dann hast du dich 
geschnitten.
Gast
ach ja die hilft bzw half am Anfang schon gut nur jetzt bitte zur Frage 
zurück. Ich weiß das 16*4 geht in Bascom nur wie muss ich die LCDs 
verbinden wenn ich die im 4bit Modus betreiben will??
Hannes schrieb:

> gestellten Frage ein Bascomprofi helfen oder einer der auch mit Bascom
> zu tun hat?

Schau halt mal in die Hilfe zu BASCOM
(Hast du auch auf deinem Rechner. In BASCOM einfach mal F1 drücken)

http://avrhelp.mcselec.com/

Unter 'Language Reference' den Abschnitt "CONFIG LCD"
1
LCDtype
2
The type of LCD display used. This can be :
3
 
4
40x4,16x1, 16x2, 16x4, 16x4, 20x2, 20x4, 16x1a or 20x4A.
5
Default 16x2 is assumed.

Wie kommt es eigentlich, dass immer die Nicht-BASCOM-Programmierer den 
BASCOM Programmierern die entsprechenden Abschnitte in der Hilfe 
raussuchen müssen?
Gast
Nein Nein Nein, ich möchte wissen WIE ICH DIE LCDS JETZT MITEINANDER 
VERBINDE BZW ZUSAMMEN AN DEN µC ANSCHLIESSE wenn ich Config Lcd = 16*4 
nehme ??!!??
Gast
Hannes schrieb:
> Nein Nein Nein, ich möchte wissen WIE ICH DIE LCDS JETZT MITEINANDER
> VERBINDE BZW ZUSAMMEN AN DEN µC ANSCHLIESSE wenn ich Config Lcd = 16*4
> nehme ??!!??

Das geht nicht.
Ließ dir durch wie ein LCD angesteuert wird. Dann wirst du die Lösung 
für dein Problem finden.
Gast
Mensch ... Ich will Doch nur 2 Stück 16*2 Lcds an einen Atmega16 
anschliessen und diese Gleichzeitig betreiben! Nur wie Shcließe ich die 
LCDs jetzt an sodass ich beide gleichzeitig mit Einem Atmega 16 
betreiben kann?
Gast
Hannes schrieb:
> Mensch ... Ich will Doch nur 2 Stück 16*2 Lcds an einen Atmega16
> anschliessen und diese Gleichzeitig betreiben! Nur wie Shcließe ich die
> LCDs jetzt an sodass ich beide gleichzeitig mit Einem Atmega 16
> betreiben kann?

Ist oben doch schon erklärt. Lern lesen.
Gast
Danke Für den Link und tschüss .. (PS Eumel: Lern mal nett zu sein! Ist 
eine höhere Gabe als nur unnötiges zeug in ein Formu zu schreiben du 
Troll)
Leutz ich muss sagen, wenn ich mir so manchen Tread ansehe, hier ist zum
Teil ein recht unfreundliches Klima.

Ich weis das es nervt zum 793. mal das gleiche zu erklären.

Mir geht das manchmal auch so, man sucht sich nen Wolf, wird aber nicht
fündig, weil man nicht die richtigen Suchbegriffe formuliert.
Und dann fragt man halt.
Sicher kann und soll niemand eine fertige Lösung präsentieren, denken 
muss man selber, auch wenns zeitweise weh tut.

Aber ein Link, oder ein Hinweis wonach man suchen soll, ist oft 
hilfreich.

Ich hab von Bascom keine Ahnung, werde ich auch nie bekommen.
Ich bleibe lieber beim C und für zeitkritische Dinge wenns sein muss
auch mal Assembler. Somit kann ich zum Problem leider nichts beitragen.

Und mal ganz am Rande:
Seit froh das die Kids sich mit dem Kram beschäftigen und nicht kiffend 
und saufend auf der Straße rumhängen.
Ich find man muss das Interesse fördern, sonst verliert man schnell den
Spaß an der Sache.
Das wäre schade und geht sicher nicht mit Sprüchen wie "Lies erstmal".

Auch wenn das hier nicht zum Thema gehört, mir brannte es unter den
Nägeln dies mal kund zutun.

Also nix für ungut, aber vieleicht einfach mal drüber nachdenken.
Jeder hat mal klein angefangen!


In dem Sinne....immer ein Bit übrighalten!

Hans
Gast
So könnte es gehen (umständlich, aber BASCOM geschuldet):

A) Zwei 16x2 LCD können nicht so zusammen geschaltet werden, dass der 
Controller ein 16x4 LCD sieht.

B) Zwei 16x2 LCD können nur so zusammen betrieben werden, wenn mit 
Ausnahme der E(nable)-EingÄnge alle anderen Leitungen der LCDs parallel 
geschaltet werden.

C) Diese beiden E-Pins werden über einen 2-zu-1-Multiplexer an den 
Controller angeschlossen.

D) BASCOM kann jetzt normal auf ein 16x2 LCD zugreifen. Wenn es auf das 
andere LCD zugreifen will, muß vorher der Multiplexer das andere E-Pin 
an den Controller schalten.

Umständlich, aber mit "Hausmitteln" machbar.


Blackbird
Blackbird schrieb:

> Umständlich, aber mit "Hausmitteln" machbar.

Und genau das macht die im RN-Link erwähnte LCD-Library.
Sie arbeitet mit 2 E-Leitungen.


> Das wäre schade und geht sicher nicht mit Sprüchen wie "Lies erstmal".

Sorry. Kommt immer drauf an.
Wenn die Antwort (zum Teil) in der Online-Hilfe steht und man im Grunde 
nur bei der Anweisung nachsehen muss, in der ein LCD konfiguriert wird, 
dann ist "Lies erstmal" angebracht.
Wir sind doch hier nicht im Kindergarten. Das Arbeiten mit der Hilfe 
(und die ist bei BASCOM nicht schlecht) gehört zur Arbeit eines 
Programmierers mit dazu. Wenns um irgendein esoterisches Statement geht, 
sag ich ja noch nichts. Aber ein LCD zu konfigurieren ist doch Standard 
in BASCOM. Dann sieht man halt mal in der Hilfe nach, welche 
Möglichkeiten es da gibt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 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.