Gefunden für assembler ascii hex - Zum Elektronik Forum





1 - Delay Befehle verursacht grosses .hex file -- Delay Befehle verursacht grosses .hex file




Ersatzteile bestellen
  Dem widerspricht allerdings das hier

Zitat :
AVR Studio meldet, dass das .hex file zu gross für meinen AVR (ATmega48)ist.

Der mega8 hat 4kB Flashlänge, demnach hat der Fragesteller entweder versucht, die ASCII-Werte aus dem *.hex-Inhalt zu brennen (klappt logischerweise nicht!) oder aber der Kode ist wirklich so megalang.

Als ich mit C @AVR-Studio angefangen habe, habe ich auch mal die delay-Sachen benutzt, und auch bei mir war anschließend der comp. Kode extrem lang; eben zu lang.


Was ich machen würde (und auch gemacht habe):

Eine Funktion schreiben, die das per Assembler macht, ähnlich Benedikts Kode oben und wo bereits fertig berechnete Werte zum Verzögern benutzt werden, und nicht erst, wie ebenfalls schon erwähnt, erst zur Laufzeit berechnet wird, was davon mal abgesehen auhc ziemlich lange dauern kann. ...
2 - serielles Kommunikationsproblem -- serielles Kommunikationsproblem
Heute habe ich auch einmal eine Frage.

Ich habe dieses LCD-Modul, das ich ansteuern möchte. Eine Suche brachte mich zu diesem Thread über einen 320x240 Pixel LCD-Controller im Textmodus. (Diese Seite lädt bei mir seeehr langsam. Aber bitte erst einmal weiter lesen! )
Der Controller arbeitet mit dem ATmega8 und wurde in Assembler programmiert. Das habe ich für Mikrocontroller noch nie getan, aber die Umstellung auf den im Programm schon vorhandenen Zeichensatz mit 10 Pixeln Höhe und auf 200 Pixelzeilen (20 Zeichenzeilen) war ja noch einfach.
Ich war schon mal begeistert, als ich danach schon etwas auf dem Bildschirm erkennen konnte. Allerdings hat dieses LCD 640 x 200 Pixel im Hochformat (sehr seltsam!), so daß nur die Hälfte der Bildschirmbreite mit lauter magersüchtigen Zeichen ausgenutzt wurde. Mit viel Versuch und noch mehr Irrtum ist es mir aber gelungen, das Programm so zu ergänzen, daß jetzt (neu definierte) Ze...








3 - Welche Programmiersprache für spezielles AVR-Projekt empfehlenswert? -- Welche Programmiersprache für spezielles AVR-Projekt empfehlenswert?
Wie gesagt, grundsätzlich gilt: die Lösung eines (informationstechnischen) Problems sollte nicht an eine bestimmte Programmiersprache gebunden sein (nicht mal an eine Architektur).

Also: die Problemlösung sollte generell erfolgen, z.B. in Form einer mathematischen Vorschrift, eines Flussdiagramms, eines Zustandsdiagramm oder in Pseudocode.

Wenn das Problem soweit gelöst ist, kann man es implementieren, und zwar auf jeden Fall in jeder Sprache!
(Die eine oder andere Sprache ist aufgrund ihrer Struktur und Arbeitsweise mal mehr, mal weniger geeignet. Z.B. würde kein Mensch einen kompletten Webserver in Assembler schreiben, auch wenn dies natürlich ginge (theoretisch...))

Soweit Theorie, praktisch muss man noch andere Dinge miteinbeziehen.


Ich empfehle grundsätzlich das Erlernen der Sprache C für AVRs. Wenns später mal ein wenig zeitkritischer wird, lässt sich eigener Assemblercode problemlos hinzulinken.
C ist theoretisch zumindest plattformunabhängig und du kannst auch „Trockenübungen” am PC ohne µC machen.

Gedanken musst du dir natürlich auch über die Hardware machen; z.B. wie schnell die Daten ankommen bzw. wie groß der Abstand zwischen zwei Symbolen (ASCII-Zeichen) minimal ist, also welche Baudrate der Sender benutzt.
4 - C-Programmierung: Float in Int umwandeln -- C-Programmierung: Float in Int umwandeln
Hallo Don,

vielen Dank für die ausführlichen Erklärungen (Solltest Lehrer werden ),
ich hoffe/glaube... ich hab alles verstanden.


Zitat : Ich persönlich programmiere nur mit einem einfachen Editor (der gerade mal Einrückung und Schlüsselworthervorhebung ("syntax highlighting") unterstützt) und parallel dazu einer Shell sowie dem Programm make.
Du verstehst ja auch was vonwegen Makefiles etc., für einen Anfänger ist eine IDE einfacher. Ich muss nur Strg+F11 bzw. F9 drücken und ab geht die Post.


Zitat :
5 - welche Programmiersprache? -- welche Programmiersprache?

Offtopic :Moin,

Naja, was heißt schon sich "stark unterscheiden"? Einige bereits kodierte Algorithmen laufen bei mir 1:1 portiert sowohl auf einem mini kleinen AVR als auch als Codefragment in einem Linux-Programm. Zufällig brauchte ich zweimal die gleiche Funktionalität.

Nur habe ich, wenn ich selbst mit nem sehr alten, langsamen Rechner z.B. ein Programm in C schreibe wesentlich mehr Ressourcen zur Verfügung, was z.B. dazu führt, dass ich viele Bibliotheken einbinden kann (klar, viele davon sicherlich dynamisch, was ja bei AVRs eh nicht geht... ) und mir allein schon die libc zur Verfügung steht mit printf, fprintf, scanf, sscanf, etc.

Also, die Umgebung zählt enorm, aber vom "Feeling" ist es kaum ein Unterschied. Man kann halt unter C und Linux ziemlich sorglos mit solch Speicherkillern wie printf und variablen Argumenten umgehen. Auf AVRs bitte zu unterlassen, da wird der gesamte Umfang der formatierten Ausgabe kaum gebraucht, und wenn man es braucht, dann bitte eigene, kleine Funktionen implementieren, ohne Interpretation d...
6 - Thermometer mit Atmega8 -- Thermometer mit Atmega8
Mit BASCOM, Basic oder auch Assembler, Du mußt die Zahl in die einzelnen Dezimalstellen zerlegen und daraus dann ASCII Zeichen erzeugen.

Z.B. sind hier Modulo Divisionen geeignet, die immer ganzzahlig das Ergebnis und den Divisionsrest liefert. Damit kann man jede einzelne Dezimalstelle separieren.

Schöne Grüße Selfman

...
7 - Grafisches Display ansteuern -- Grafisches Display ansteuern
Hallo!

Hab mich selbst mal mit einem 128*64 LCD am 8031 beschäftigt, damals in Assembler. Auf dem Display sind 2 Controller, rechte und Linke Hälfte. Habe zuerst Routinen für Punktansteuerung entwickelt (Umschaltung zwischen den Controllern damit Pixel fortlaufend ansprechbar), darauf aufbauend für Linien, Recktecke leer und gefüllt,...
Zum Initialisieren, Löschen, Scrollen habe ich die Controller parallel beschrieben, das Auslesen, sofern nötig, muß natürlich einzeln erfolgen.

Es war kein Zeichensatz im Display vorhanden, den hab ich im Speicher Abgelegt wo die Umsetung von ASCII-Zeichen in Pixel erfolgte, welche mit zuerstgenannten Routinen direkt in den Displayspeicher geschrieben wurden. Extra Framebuffer im Controller war nicht sinnvoll, wegen einigen geänderten Pixel immer den ganzen Displayinhalt zu schreiben wäre zu langsam gewesen.

Hier mal was aus meiner Linksammlung:

LCD-Projekte
LCD Info

mfg lötfix



[ Diese Nachricht wurde geändert von: Lötfix am &n...
8 - LED-Matrix 8x64 ansteuern -- LED-Matrix 8x64 ansteuern
Ich habe sowas schon mit 5*7 Pixeln/Segment aufgebaut.
Die Daten ansich haben oft im µC-Flash Platz, es sei denn, dieser ist zu klein.

Geht man vom 8-Bit-ASCII aus, sind das 256*8Byte, die maximal benötigt werden, wobei nicht alle Zeichen überhaupt darstellbar sind.

Das Design der Zeichen habe ich selbst übernommen, hab aber die Tabelle (Assembler) nicht mehr.

Ich gehe davon aus, die willst von ASCII-Wert zum Zeichenmuster kommen. Angenommen, du speicherst je 8 Byte pro Zeichen (passt: max. 8*8Bit), dann sind alle ganzen Vielfache von 8 der Anfang der ersten Zeile des entsprechenden Zeichens. Ist also selbst mit µC-Krücken gut machbar, die Errechnung des Offsets ist recht unproblematisch mit ein paar Schiebeoperationen. ...
9 - Probleme bei LCD-Ansteuerung -- Probleme bei LCD-Ansteuerung
Moin,

Wie sollen wir denn den Fehler finden, wenn wir den Originalkode nicht haben?

Du musst keine Verzögerung, wie von Jorn vorgeschlagen, reinbauen, wenn du das Busyflag testest. Das tust du, ob du es richtig machst, kann ich dir nicht beantworten, da ich keinen PIC-Assembler verstehe, oder nur rudimentär.
Sollte das Testen des Busyflags allerdings nicht klappen, dann ist Jornbytes Einwand allerdings berechtigt.

Tabelle? Werden denn die richtigen Zeichen im ROM korrekt addressiert? Wann ist der String zuende? Nullterminiert? Oder bekannte Länge? Wenn er nicht nullterminiert ist, dann wird fleißig jeder weitere Datensalat aus dem Flash oder RAM gelesen und als Datenbyte ins Displayram kopiert. Nullterminiert bedeutet aber auch, dass du selbst überprüfen musst, ob das gelesene Zeichen ungleich NULL (0) ist! Sind die Zeichen unter den ASCII-Zeichen 0x0-0x7, dann wird der Inhalt des Character Generator RAMs aufs Display abgebildet. Das Ganze geht so schnell, dass du vermutlich kaum die ersten paar korrekten Zeichen des Strings sehen kannst, bevor sie mit Datensalat überschrieben werden. Ist dann noch ein Fehler in der LCD-Routine, was ich wie gesagt nicht herausfinden kann, dann ist es klar, dass das nich...
10 - Bascom AVR Frage zu Arraynamen in Variablen -- Bascom AVR Frage zu Arraynamen in Variablen
Ja, du hast mich korrekt verstanden.

Wie man das mit Basic macht, weiß ich leider nicht, in Assembler könnte ich dir weiterhelfen.

Sonst legst du halt einfach die Tabellen ins EEPROM, da kann ich dir dann auch sagen, wie das geht (da kenn ich noch die Zugriffbefehle).

Wenn mich aber nicht alles täuscht, sollte auch ein Array als Tabelle mit den Werten für die Zeichen reichen. Das Array ist dann eben im schlimmsten Fall (=alle ASCII-werte von 0-255) 256*5 Bytes groß.

Edit:
Dim Kode[255] As String * 5

Am Anfang muss dann die Tabelle mit den Werten gefüllt werden, die als Konstanten irgendwo im ROM rumliegen.
Deshalb macht es mehr Sinn, direkt im OM zu bleiben, ohne 768 Bytes im SRAM zu verschwenden. Nur musste dann rausfinden, wie man mit Basic auf Zellen im ROM zugreifen kann. Bedenke auch, dass das ROM nicht byte- sondern word-organisiert ist!


[ Diese Nachricht wurde geändert von: DonComi am 23 Feb 2007 14:41 ]...
11 - Kopmlexes Funkprojekt -- Kopmlexes Funkprojekt
Mir war schon klar, daß der fragesteller net so viel von versteht, dennoch fand ich eine kompetente antwort für wichtigvor 8 jahren ware ich auch mal auf einer ähnluichen stufe (okey, GRUNDKENNTNISSE (z.b. aus cosmos x2000 experimentierkasten, div. technik-bücher u.ä.) hastte ichd amals schon, aber praktisch keine gtroßartige ahnung zu funktechnik und analoger schaltungstechnik (net mal'n analogen evrstärker konnte ich ohen schaltplan bauen )

und da hatte ich vergleichbar gewagte projekte (datenübertragung mit baycom modems über babyfon, bau eienr pulsweitenmodulationssoundkarte (die adressleitung a23 und dern drq2 des isa busses gingen über ein and gatter, dessen ausgang mit tiefpasselko gegen masse dan an den cd-line-in der soundkarte ging, angesteuert per pascal programm das gemäß dem pwm datenstrom 1,2 million mal pro sekunde (irq 0 mit divisor 1 ) (1,2 mhz einen lesezugriff auf speicheradresse 8000:0 und möglichst schnell drauf aufs floppy drive (dma2) zugriff, um das gate schnell genug zu öffnen und zu schließen.

allerdings war ich in mathe schlecht , und konnte die fast fourier transformation (um pcm nach pwm zu wandeln) net in pascal umsetzen, abgesehen davon hätte das in der form wohl mehr störungen als n...
12 - welcher Atmel für Torzähler? -- welcher Atmel für Torzähler?
so, mit dem programm für den alltagsgebrauch bin ich jetzt durch, es werden sogar auch schon nullchen erkannt...
jetzt kommt der zusatz-firlefanz für den Turnierbetrieb:
also ich kann ja auf dem chip irgendwo nen ASCII-Text hinterlegen, und den dann bei bedarf über das UART ausdrucken - soweit keine probleme
nur, wie mach ich das codemässig, dass in dem text platzhalter sind die dann meine im spiel gewonnenen daten annehmen, und ausgeben?
in Pascal ist das ja kein Problem, nur wie geht das in Assembler? die Tutorials die ich habe geben da leider keinen aufschluss drüber...
evtl würde mir auch einfach die "wissenschaftliche" Bezeichung für diesen Vorgang weiterhelfen, damit ich weiß wonach ich googlen muss.


[ Diese Nachricht wurde geändert von: Morgoth am  5 Feb 2005 11:43 ]...
13 - Initialisierung LCD-display 4-bittig? -- Initialisierung LCD-display 4-bittig?
Hallo, bevor die Tonne gefüllt wird, einfach her damit. !
Der Baustein darauf erwartet alle Daten als 8 bit Wort.
Im 4-Bit Betrieb werden nur die Datenleitungen D4 bis D7 benutzt.
Ist der Controller erst mal im 4 Bit betrieb, mußt Du alle 8bit Datenwörter in zwei 4 Bit Wörter ( nibbles ) zerlegen, und übertragen. Da viele Steuerbefehle mit 0000 anfangen, ist das erste nibble auch 0000. Dann mußt Du dem Controller mitteilen ,das das Display eingeschaltet ist, ob der Cursor sichtbar und nicht blinkt usw.usw.
Das ist die Konfigurations-Sequenz.
Und dann fleißig die Nummern der Buchstaben ( ASCII`s )
senden.Hier ein altes Beispiel, leider für Atmel, aber Assembler-programmierer verstehen das auch ohne weitere Erklärung.>> bitmas ist eine Maske 00001111

Nicht gefunden ? Eventuell gibt es im Elektroforum Transistornet.de für Assembler Ascii Hex eine Antwort
Im transitornet gefunden: Assembler Ascii Hex


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 7 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 192517982   Heute : 16700    Gestern : 10744    Online : 515        7.8.2026    18:23
17 Besucher in den letzten 60 Sekunden        alle 3.53 Sekunden ein neuer Besucher ---- logout ----su ---- logout ----
xcvb ycvb
0.021703004837