Hallo Bascomer,
habe folgende Nuss zu knacken:
Mit einem Atmega8 und internem 8MHz Takt möchte ich an Port D0 (UART RxD) kontinuierliche Daten aus einem externen SDR-Empfänger einlesen und auf einem LCD-Modul mit I2C-Anschluss darstellen. Die Darstellung von Analogwerten auf dem 4x20 Zeichen LCD-Modul funktioniert in einem BASCOM-Programm bereits bestens. Zusätzlich sollte die am UART-Port eingelesene Frequenz ebenfalls angezeigt werden. Dazu sollte diese per Assembler-Unterprogramm letztendlich in einer Variablen landen. Versuche mit BASCOM-Befehlen waren bis dato negativ, da BASCOM vermutlich die 1Mbps-Daten zu langsam einliest und daher nur teilweise und falsch darstellt.
Das SDR-Modul sendet die eingestellte Frequenz (10 kHz - 150 MHz) alle 200ms im 5 Byte-Modus und mit 1 Mbps Datenrate in folgendem Format:
die ersten 4 Bytes stellen die eingestellte Frequenz dar und zwar im Binär-Format mit dem LSB als erstes Byte. Das letzte (5.) Byte dient als Rx/Tx indicator (0x80 = Tx und 0x00 = Rx).
Beispiel der Hex-Bytefolge 1-4 für die Frequenz 1MHz = 1.000.000 Hz
0x40, 0x42, 0x0F, 0x00
Nach dem Einlesen der 4 Bytes soll durch eine Umwandlungs-Routine der Binärwert (hier: "11110100001001000000") errechnet und in einer Variablen (z.B. FRQ) abgelegt werden.
Mit
Frequenz = Binval(FRQ)
und
Locate 4 , 1 : Lcd " F: " ; Frequenz
kann die Variable "Frequenz" auf dem LCD angezeigt werden.
Leider bin ich kein ausgebuffter Assembler-Spezi und hoffe, dass sich hier jemand findet, der das gesuchte Assembler-UP vielleicht schon in der Schublade liegen hat und hier postet. Bin für jeden Tip dankbar.
Mit vielen Grüssen aus dem Badnerländle
Rolf
habe folgende Nuss zu knacken:
Mit einem Atmega8 und internem 8MHz Takt möchte ich an Port D0 (UART RxD) kontinuierliche Daten aus einem externen SDR-Empfänger einlesen und auf einem LCD-Modul mit I2C-Anschluss darstellen. Die Darstellung von Analogwerten auf dem 4x20 Zeichen LCD-Modul funktioniert in einem BASCOM-Programm bereits bestens. Zusätzlich sollte die am UART-Port eingelesene Frequenz ebenfalls angezeigt werden. Dazu sollte diese per Assembler-Unterprogramm letztendlich in einer Variablen landen. Versuche mit BASCOM-Befehlen waren bis dato negativ, da BASCOM vermutlich die 1Mbps-Daten zu langsam einliest und daher nur teilweise und falsch darstellt.
Das SDR-Modul sendet die eingestellte Frequenz (10 kHz - 150 MHz) alle 200ms im 5 Byte-Modus und mit 1 Mbps Datenrate in folgendem Format:
die ersten 4 Bytes stellen die eingestellte Frequenz dar und zwar im Binär-Format mit dem LSB als erstes Byte. Das letzte (5.) Byte dient als Rx/Tx indicator (0x80 = Tx und 0x00 = Rx).
Beispiel der Hex-Bytefolge 1-4 für die Frequenz 1MHz = 1.000.000 Hz
0x40, 0x42, 0x0F, 0x00
Nach dem Einlesen der 4 Bytes soll durch eine Umwandlungs-Routine der Binärwert (hier: "11110100001001000000") errechnet und in einer Variablen (z.B. FRQ) abgelegt werden.
Mit
Frequenz = Binval(FRQ)
und
Locate 4 , 1 : Lcd " F: " ; Frequenz
kann die Variable "Frequenz" auf dem LCD angezeigt werden.
Leider bin ich kein ausgebuffter Assembler-Spezi und hoffe, dass sich hier jemand findet, der das gesuchte Assembler-UP vielleicht schon in der Schublade liegen hat und hier postet. Bin für jeden Tip dankbar.
Mit vielen Grüssen aus dem Badnerländle
Rolf
Wissen ist Macht, nix wissen macht auch nix.