Forum: Mikrocontroller und Digitale Elektronik byte/s zählen


von DiamondDog (Gast)


Lesenswert?

hab n kleines problem und würde mich freuen,wenn mir jemand helfen
könnte.
habe ne leiterplatte aufgebaut, womit ich vorhabe die datenmenge über
der seriellen schnittstelle mit einem lcd anzeigen zu lassen.
zusätlich wird das bitmuster der dateien über led´s angezeigt. jeweils
für die sende und empfangsleitung.die sache mit den leds funktioniert
schon, allerdings habe ich echt kein plan, wie ich des mit dem display
realisieren soll. benutze fürs display nen at90s2313. soweit
funktionieren tut es schon, also bekomm texte auf meinem display
(1x16)wiedergegeben. würde dadrüber jetz gern die geschwindigkeit
anzeigen lassen mitwievel byte/s momentan übertragen wird.
wäre echt glücklich drüber wenn mir jemand nen kleinen anstoß für die
programmierung geben könnt.


danke im vorraus

von Hannes L. (hannes)


Lesenswert?

Ich habe auch ein Problem, ich verstehe nämlich deine Frage nicht
richtig, auch wenn du sie jetzt schon zum zweiten mal stellst...

Ich denke mal, du möchtest mit dem 2313 die COM-Schnittstelle
belauschen und die Anzahl der erkannten Bytes zählen und anzeigen. Wenn
das so ist, dann musst du dich entscheiden, eb du das Senden oder das
Empfangen mitzählen willst, denn der 2313 hat nur einen RX-Eingang.

Wenn das geklärt ist, dann musst du nur im 2313 die UART korrekt
initialisieren (steht im Datenblatt des 2313 unter UART), den
Empfangs-Interrupt aktivieren und bei jedem Auftreten des
Empfangs-Interrupts ein Register(paar) hochzählen.
Dann noch einen Timer-Interrupt, der einen Sekundentakt erzeugt, in
dessen ISR du den aktuellen Zählerstand auf dem LCD ausgibst und
löscht. So bekommst du jede Sekunde eine neue Ausgabe. Da das LCD ja
groß genug ist, kannst du ja zusätzlich noch die erfassten Bytes seit
dem letzten Reset anzeigen.

Also Textausgabe mit LCD klappt ja schon, wie du die Zahlen in den
Registern in anzeigbaren ASCII-Text umwandelst, wurde in den letzten
Wochen sehr oft diskutiert. Wenn du mit "im Betreff suchen" nach LCD
suchst, dann wirst du sicher fündig.

Tja, dein Vorhaben ist im Prinzip kein Problem, man muss sich nur für
eine Richtung entscheiden, RX oder TX. Beides geht nunmal nicht mit dem
2313, es sei denn, du möchtest mit dem 2313 zum PC senden, aber darin
sehe ich keinen Sinn.

Die Platine ist schon fertig? Dann kann ich mal davon ausgehen, dass da
auch ein MAX232-IC zur Pegelumsetzung drauf ist und ein
baudratentauglicher Quarz für den 2313? Einen ISP-Programmer hast du
sicherlich auch und mit der AVR-Programmierung in Assembler kennst du
dich auch etwas aus?
Dann ran ans Projekt... - Datenblatt lesen, UART für RX mit Interrupt
initialisieren, Zählroutine schreiben, Timer initialisieren,
Ausgaberoutine (Umwandlung Integer-ASCII) schreiben...

...

von DiamondDog (Gast)


Lesenswert?

ok, ich danke dir, tut mir leid wenn mein vorhaben nich ganz so
rübergekommen ist, aber hasts ja verstanden. programmiern tu ich die
sache mit über bascom mit ner stk 500 und den takt bekomm ich von nem
4MHz quartz.die einzigste sache is halt noch die assembler
programmierung, aber ich gucke ma was sich machen lässt.

von Hannes L. (hannes)


Lesenswert?

4MHz ist aber nicht baudratentauglich, da wäre 3,6864MHz besser.

In BASCOM müsste das auch realisierbar sein.
Davon habe ich aber keine Ahnung, Assembler ist mir lieber, das ist
einfacher. Da schreibt man nur die entsprechenden Werte laut Datenblatt
in die entsprechenden I/O-Register und schon funktionieren Timer,
Interrupts, UART und all der andere Krams wie gewollt.

...

von DiamondDog (Gast)


Lesenswert?

ja leider lernen wir es mit bascom, bzw. avr-studio.
in der berechnung war der 4mhz mit ner fehlerrate von 0,16%. damit kann
ich leben. gut, des einzigste prob wird wie gesagt die programmierung
der rest funktioniert erstma laut testaufbau.
nagut werd mich ma denn ransetzen,
kann schreiben wenn ich ne lösung gefunden hab.

einen schönen abend noch!

von Hannes L. (hannes)


Lesenswert?

> ja leider lernen wir es mit bascom, bzw. avr-studio.

Wer ist "wir"??

Mit AVR-Studio programmiere ich auch, das ist ja AVR-Assembler.

BASCOM ist nicht transparent genug, es ist zu weit von der Hardware
entfernt. Ich mag es daher nicht. Ein AVR kann kein BASIC, er kann nur
Maschinencode. Und Assembler entspricht 1 zu 1 Maschinencode. BASCOM
erzeugt zwar auch Maschinencode, zeigt ihn aber nicht in ASM. Da ich
aber gern weiß, was ich tue, kann ich sowas nicht gebrauchen. Das macht
irgendwie dumm. Also versuche ich ohne BASCOM auszukommen. Beispiele
findest du auf www.hanneslux.de.

...

von DiamondDog (Gast)


Lesenswert?

danke für den link, hab ich ja was zutun.
mit wir meinte ich unsere klasse. soweit komm ich ganz gut klar, halt
mit avr programmierung haperts bei mir bisschen, da komm ich ned so
ganz hinterher

von DiamondDog (Gast)


Lesenswert?

edit

bin halt noch sehr weit am anfang und hab so gut wie noch keine ahnung,
war schon glücklich als ich die leds durchzählen lassen konnte.

von Hannes L. (hannes)


Lesenswert?

Aller Anfang ist schwer... Auch ich habe mit Kleinstprogrämmchen
angefangen...

...

von DiamondDog (Gast)


Lesenswert?

dann werd ich mich ma ransetzen und probieren.
aber danke für die hilfe.

von Rahul (Gast)


Lesenswert?

>Auch ich habe mit Kleinstprogrämmchen angefangen...

boaa... klingt das geschwollen ;) (<-- ein Smilie...)

von Hannes L. (hannes)


Lesenswert?

> Kleinstprogrämmchen ...

Jou, inzwischen sind aber keine "Kleinstprogrämmchen" mehr, sondern
"kleine Programme". Die "großen Programme" überlasse ich den
Profis.

> boaa... klingt das geschwollen

Sollte es auch...

Grüß die Sprotten... ;-)

...

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.