Gefunden für dec ascii umwandeln - Zum Elektronik Forum |
| 1 - PWM mit Attiny2313 will nicht so ganz -- PWM mit Attiny2313 will nicht so ganz | |||
| |||
| 2 - AVR-Assemblercode von Atmega88 auf -8 umstricken -- AVR-Assemblercode von Atmega88 auf -8 umstricken | |||
| Hi!
Ich möchte mir ein Elektorprojekt nachbauen. Dafür wird ein Atmega88 verwendet, ich habe aber nur den Atmega8 hier. Ich habe schon etwas über die Unterschiede gefunden, blicke aber trotzdem nicht ganz durch. http://www.gaw.ru/pdf/Atmel/app/avr/AVR094.pdf Z.B. meckert der Compiler über "out TCCR0A,r16" Ist irgendwie klar, der Atmega8 hat ja nur einen Ausgang vom zweiten Timer etc. Aber wie schreibe ich das um? Geht das überhaupt, oder war der Atmega88 _statt_ dem 8er nötig? Wäre schön, wenn mir jemand weiterhelfen würde
Code : | |||
3 - HEX nach DEZ umrechenen für LCD ? -- HEX nach DEZ umrechenen für LCD ? | |||
| Ein Beispiel in ASM:
; Bin2ToAsc5 ; ========== ; wandelt eine 16-Bit-Binärzahl in eine fünfstellige ASCII- ; kodierte Dezimalzahl um ; Aufruf: 16-Bit-Binärzahl in rBin1H:L, Z zeigt auf Anfang ; der Zahl ; Rückkehr: Z zeigt auf Anfang der Zahl, führende Nullen sind ; mit Leerzeichen überschrieben ; Benutzte Register: rBin1H:L (bleibt erhalten), rBin2H:L ; (wird überschrieben), rmp ; Aufgerufene Unterroutinen: Bin2ToBcd5 ; Bin2ToAsc5: rcall Bin2ToBcd5 ; wandle Binärzahl in BCD um ldi rmp,4 ; Zähler auf 4 mov rBin2L,rmp Bin2ToAsc5a: ld rmp,z ; Lese eine BCD-Ziffer tst rmp ; prüfe ob Null brne Bin2ToAsc5b ; Nein, erste Ziffer ungleich 0 gefunden ldi rmp,' ' ; mit Leerzeichen überschreiben st z+,rmp ; und ablegen dec rBin2L ; Zähler um eins senken brne Bin2ToAsc5a ; weitere führende Leerzeichen ld rmp,z ; Lese das letzte Zeichen Bin2ToAsc5b: inc rBin2L ; Ein Zeichen mehr Bin2ToAsc5c: subi rmp,-'0' ; Addiere ASCII-0 st z+,rmp ; und speichere ab, erhöhe Zeiger ld rmp,z ; nächstes Zeichen lesen dec rBin2L ; noch Zeichen behandeln? brne Bi... | |||
| 4 - 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 | |||
| 5 - DMX-Empfangs-Programm für AVR -- DMX-Empfangs-Programm für AVR | |||
| also, bevor ich jetzt tausendmal nachfrage, poste ich doch einfach mal den programmtext, und du kannst dann ja mal das nötige verändern. falls du da die zeit zu hast $baud = 250000 On Urxc Rx_sub Enable Serial Declare Sub Get_byte '******************************************************************************* Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.6 , Rs = Porta.4 Config Lcd = 16 * 2 Cls Cursor Off '******************************************************************************* Do 'hier soll erstmal nur der wert des eingestellten dmx-kanals in eine varible geschrieben werden! Loop '******************************************************************************* $asm Get_byte: ' das unterprogramm aus dem ASM-Listing ' inc dmx_countL mußt du als inc r22 schreiben ' so wie es in den .def steht ' also die Namen gegen die Register tauschen ' 8515 mit 8MHz .include "8515def.inc" .equ Channels_all = 1 ... |
|
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! gerechnet auf die letzten 30 Tage haben wir 7 Beiträge im Durchschnitt pro Tag heute wurden bisher 0 Beiträge verfasst 31 Besucher in den letzten 60 Sekunden alle 1.94 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |