Gefunden für ascii code lcd - Zum Elektronik Forum |
| 1 - serielles Kommunikationsproblem -- serielles Kommunikationsproblem | |||
| |||
| 2 - ASCII Coder/Encoder IC gesucht -- ASCII Coder/Encoder IC gesucht | |||
| Sowas vielleicht?
http://www.conrad.de/ce/de/product/163716/ Edit: ist halt einfacher anzusteuern als ein LCD. Digit wählen, ASCII-code anlegen, Write-pulse, fertig. Gruß Harald [ Diese Nachricht wurde geändert von: Harald73 am 28 Sep 2010 9:35 ]... | |||
3 - UART Probleme -- UART Probleme | |||
Es ist halt verdammt viel Code zum lesen und ich wollte nicht jemand qualifiziertes verschrecken .
also gut: UART.c Code : #include <avr/io.h> #include <inttypes.h> #include <AVR/io.h> //Definition der Ports #include <string.h> #include <AVR/interrupt.h> #include <AVR/signal.h> #define BAUD 9600UL #define UBRR_BAUD ((F_CPU/(16UL*BAUD))-1) uint8_t buffer; char *UARTText; char UARTzeiche... | |||
| 4 - Mikrokontrollerprint spinnt!! Grund: unbekannt -- Mikrokontrollerprint spinnt!! Grund: unbekannt | |||
| Hallo Rambodischien,
hab in der Empfangsroutine noch ein mögliches Problem gesehen: Wenn cEmpfangen nicht mit Nullen initialisiert ist, werden mit jedem Schritt zuviele Zeichen nach sEmpfangen angehängt. Denn es fehlt bei cEmpfangen die Stringendekennung. Entweder Du machst so: cEmpfangen[z]=UDR; cEmpfangen[z+1]=0; // hier aufpassen, dass das Array immer gross genug ist strcat(sEmpfangen,cEmpfangen); oder machst vor der for Schleife ein memset(cEmpfangen,0x00,sizeof(cEmpfangen)); Zu dem Sonderzeichen ans Display: Wenn das so ein Standard-HD44780-Typ ist, werden mit Ascii-Code 00-0F CGRAM-Zeichen aktiviert. Das sind user-definierte Zeichen, die der User ( nämlich Du ) wahrscheinlich nicht definiert hat. Von daher
wird dann irgendwelcher Bitmüll angezeigt. Am besten du ersetzt nicht darstellbare Zeichen in der LCD-Anzeige durch einen Punkt und/oder hinterlegst Sonderzeichen für 0x0A und 0x0D. Gruß Stefan ... | |||
| 5 - C: Variable wird unerklärlicherweise gelöscht.... -- C: Variable wird unerklärlicherweise gelöscht.... | |||
| Hallihallo zusammen,
ich arbeite gerade an meinem ersten grösseren Projekt mit C. Es gilt ein Nokia 3310 LCD anzusteuern. Die Ansteuerung klappt wunderbar, nur hab ich ein Problem mit der Programmierung. Es geht um folgendes. Jede Sekunde wird vom Timer1 ein Output Compare A Interrupt ausgelöst. In der Interruptroutine wird eine Variable ("Sekunde") hochgezählt. Dieser neue Sekunden-Wert soll dann auf dem LCD erscheinen. Dazu muss das LCD zuerst gelöscht werden. Dazu werden zwei verschachtelte For-Schleifen durchlaufen. Nun kommts. Sobald die erste Schleife den Wert "6" annimmt, springt der Wert von "Sekunde" völlig zusammenhangslos auf 0 zurück. (Im AVR Studio Simulator eruiert und durch Realität bestätigt.). Mein Wert wird auf dem LCD also nicht hochgezählt, sondern bleibt immer 0... Hier die Codeschnipsel: Initialisierung der Variable: Code : | |||
| 6 - Nokia-3310-Display und PWM-Steuerung (fertiges AVR-Assembler-Projekt) -- Nokia-3310-Display und PWM-Steuerung (fertiges AVR-Assembler-Projekt) | |||
| Hallo,
Da ich keines der im Internet auffindbaren Programme vernünftig zum laufen bekam (um meine Displays zu testen) habe ich mir ein eigenes, recht umfangreiches Programm zur Ansteuerung eines Nokia3310-Displays geschrieben. Das Programm ist bisher nur auf Text ausgelegt, Grafiken sind aber leicht "nachzurüsten". Die ASCII-Zeichentabelle ist von http://www.microsyl.com/ übernommen und überarbeitet (Buchstaben haben jetzt eine Leerspalte mit im Gepäck) Da ich das ganze dann auch irgendwie anwenden wollte, und ein Kumpel grade dabei war mich über Motorsteuerungen auszuquetschen habe ich eben ne PWM-Steuerung um den Code gebastelt. Das Ergebnis gibt es im Anhang. Bei mir ist das Programm in verschiedene .asm-Dateien untergliedert, die dann am Schluss per "include" ins Hauptprogramm eingebunden werden, für den Upload hab ich jetzt alles zuammengepackt. Der Grund warum ich das hier poste ist einfach der, dass ich das LCD-Programm wohl nicht sonderlich häufig nutzen werde, und es schade um die Mühe fände, wenn es bei mir in irgendeinem Ordner vergammelt... Bei Interesse gibt es auch noch nen Schaltplan vom Prototy... | |||
| 7 - 433 mHz USB Funk LCD -- 433 mHz USB Funk LCD | |||
| hallo,
was für ein LCD willst du denn nehmen? wenns diese intelligenten mit controller sind (nicht grafisch), dann wird das ganze relativ einfach. die ansteuerung der zeichen vom display ist meist dem ASCII code sehr ähnlich, oder sogar gleich. ich würde die zeichen einfach direkt per RS232 und ASCII übertragen. zusätzlich wirst du noch ein paar befehle brauchen für "neue zeile, lösche display, u.s.w." mfg wulf ... | |||
| 8 - Zeitnehmung -- Zeitnehmung | |||
| Hallo!
Hallo! Ich möchte eine Zeitmessung mit einer Zwischenzeit bauen, die Ausgabe erfolgt auf einer LCD-Anzeige und das ganze soll natürlich interrupt gesteuert laufen(Timer0). Ich habe einen PIC-Controller 16F84. Nun habe ich folgendes Problem: Ich hätte gerne dass die Zeitanzeige bei 00:0 (sec:zehntel) startet. In meiner bisherigen Interuptroutine habe ich aber bis lang noch mit dem Sekundenzähler zu kämpfen.Bin schon froh dass es ziemlich genau von 0 bis 9 im sekundentakt zählt. Wie funktioniert ein Überlauf? In diesem Programm funktioniert er leider nicht wie gewünscht:-( Meine Interruptrutine schaut so aus: interrupt int_server (void) { int_save_registers if (INTCON.2 == 1) { count++; if (count == 61) { count =0 ; counter++; if (counter == 10) counter =0 ; } byte = 0x0c0; //Wechsel in die nächste Zeile SendCmd (); //Positionsangabe am Display byte = 0x0c5; //An stelle 5 SendCmd (); //Positionsangabe am Display byte = counter+48; //ASCII-Code SendChar (); if(counter == 10) { zehner++; byte = 0x0c5; //Zeile 2;St... | |||
| 9 - 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 9 Besucher in den letzten 60 Sekunden alle 6.67 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |