Hallo Ich habe ein LCD Display zuhause. Diese Funktioniert einwandfrei an einem Atmega 16 Nun habe ich mir ein anderes gekauft bei Conrad EA DIP162-D leider bekomme ich es nicht zum laufen! Das Dispplay wird zwar initialisiert ,, also beim einschalten hat es nur eine Reihe einen Balken, sobald ich dann einen reset mache auf meinem STK 500 werden 2 schwarze balkenreihen angezeigt. Aber es wird kein Text angezeigt`? Habe beim Ersten Probelauf die pins vertauscht(Die Display Data pins) aber dies müsste doch das LCD nicht zerstören oder? Gruß Markus
>STK 500 werden 2 schwarze balkenreihen angezeigt. >Aber es wird kein Text angezeigt`? Kontrast mal runter gedreht?
ja klar alles ausprobiert Hintergrundbeleucht steht von 3.0V - 3,6 da bin ich auf 2,8 Aber dürfte nicht das problem sein
Habe des Problem vermutlich gefunden! Muss kurz mal umlöten dann meld ich mich wieder
Hm Ja aber die Balken verschwinden ganz normal und werden wieder angezeigt! Gibts nocht Lösungsvorschläge? Gruß
Zeige deinen Schaltplan und den Quellcode und wir können dir besser helfen!
Markus schrieb: > Hintergrundbeleucht steht von 3.0V - 3,6 da bin ich auf 2,8 Aber > dürfte nicht das problem sein Die Hintergrundbeleucht braucht keine bestimmte Spannung sondern einen bestimmten Strom.
Ja leider kann ich aus dem Datenblatt von Conrad nichts herauslesen dort steht nur . Der BEtrieb der Huntergrundbeleuchtung erfordert eine Stromquelle oder einen externen Vorwiderstand zur Strombegrenzung. DIe Flussspannung liegt zwischen 3,0V und 3,6 Volt. habe gerade nochmal geschaut . habe hierz einen 33 Ohm widerstand geschalten
hm hätte nur mit 45mA reinfahren dürfen bin aber laut meinen berechnungen mit 145mA reingefahren... hoffen wir dass es nicht kaputt ist
Was Nico schon schrieb, Hintergrundbeleuchtung und Kontrast sind zwei verschiedene Dinge, wie Kuchen backen und Arschbacken.
ja trozdem will das ding nicht so wie ich will hab nun mal den stromverbrauch zur beleuchtung gemssen diese waren 53mA laut datenblatt jedoch max 45mA is mir immer noch rätselhaft warums nicht funkioniert Den Code brauche ich nicht poste weil weinn ich ein anderes LCD anschließe funktioniert alles sofort
Wenn ein HD44780-Display ist, dann sind die eigentlich immer gleich.
>Wenn ein HD44780-Display ist, dann sind die eigentlich immer gleich.
Leider nicht. Es gibt manchmal subtile Unterschiede im Timing.
Hatten wir hier auch schon Threads über das Thema.
Is deine VCC zu hoch? Wenn man ein 3,3V LCD mit 5V versorgt führt das zu dem von dir beschriebenen Effekt
Nein ist ein anderes LCD! Und Laut datenblatt wird es mit 5V Versorgt
Dann kann es aber auch am Code liegen! Jedes Display hat einen eigenen Befehlssatz. Dass Heißt, du musst die Routinen anpassen!
puh was heißt den das nun für mich? "routinen" was wird dabei geändert? gruß
Wenn ich mich mal kurz einmischen darf: Du hast geschrieben, das Du schon vorher ein anderes Display mit dem selben Code erfolgreich betrieben hast. Nun hast Du das andere Display und es geht nicht. Dieses zweite Display ist ein HD44780-kompatibles. Wenn also auch das erste Display ein HD44780-kompatibles ist, was Du leider nicht ausdrücklich geschrieben hast, dann liegt Dein Problem nicht in unterschiedlichen Befehlen. Das folgt gerade aus der Kompatibilität. Andererseits gibt es, wie schon geschrieben, zwischen verschiedenen zwar HD44780-kompatiblen Displays dennoch gewisse Unterschiede im Timing. (Was dann zwar dem Terminus "kompatibel" widerspricht, aber das ist eben schon seit Jahrzehnten ein relativer Begriff).
Naja hängt alles von dem Display ab. Ich vermute mal, dass das Display (und auch das alte) über RS232 an dem uC hängt. In dem Datenblatt wird es einen Abschnitt geben, was du dem Display schicken musst, um es zu initialieren, für einen Zeilenvorschub und ähnliches. Woher hast du die Funktionen, die du für das alte Display benutzt? Hast du die selbst geschrieben? Die Funktionen müssen entsprechend dem Datenblatt angepasst werden. Wenn du mit mehr Informationen rausrückst (Datenblatt, Schaltplan, etc.), kann man dir auch besser helfen.
Kurz und gut: Um ganz sicher zu gehen, das man hier an den richtigen Schrauben dreht, solltest Du uns die Bezeichnug des Displays nennen, das mit diesem Code schon funktioniert hat. Und poste doch bitte den Code.
Also Das Alte Display mit dem es Funkitoniert heißt BT 21605 v1 Leider habe ich hierzu keine genauen Pläne https://docs.google.com/viewer?a=v&q=cache:2XKWcUHvl-4J:www.qscomp.cz/Pdf/BT_21605_dm.pdf+&hl=de&gl=de&pid=bl&srcid=ADGEEShmtufLovhZ9l1i3-v2hXmOepvQGZEROiEUQL0OFCk24EY2-gqegf5WyR2ajCjV3H9hwYGo1pxzkF2LfwoNHkxS3EAkNyhby6KBGb5CK6qQdeGPQWNMfl7Wn0I2-8qyNypumix3&sig=AHIEtbTRJxS0bVs1RN_Hj2--XKQwywlZkQ ich verwende die orignale lcd.h und habe derweitig nichts verändern wenn ich genau abzüge von der lcd.h haben wollt schicke ich die euch gerne Nun verwende ich das Display EA DIP 162-D von Conrad http://www.conrad.de/ce/de/product/181731/Alphanumerisches-Dotmatrix-LCD-Modul-zum-Einstecken-DIP162-DN3LW-Zeichenformat-2-x-16-Zeichenhoehe-668-mm-Blau-Weiss/SHOP_AREA_17651&promotionareaSearchDetail=005 int main() { uint16_t ADC_Messung1, ADC_Messung2; char Umwandlung[20]; lcd_init(LCD_DISP_ON_CURSOR); // Display initialisieren lcd_puts("Spannung\n"); // Spannungnzeige lcd_puts("Strom"); // Stromverbauch }
Hi Erläre doch endlich mal wie du den Kontrastspannungseingang (Pin 3) beschaltet hast. MfG Spess
Und es wäre nett wenn Du endlich den verf... Code posten würdest. Bitte. Mit Zuckerguss. (was verd... nochmal ist an dieser Aufforderung nun nicht zu verstehen)?
Hmm schrieb: > Und es wäre nett wenn Du endlich den verf... Code posten würdest. > Bitte. Mit Zuckerguss. (was verd... nochmal ist an dieser Aufforderung > nun nicht zu verstehen)? welchen verfickten code`? steht doch oben! was willst du genau sehen Kontrast 2 Ich nehme 5V geh auf nen Widerstand 27kOhm der widerum geht auf nen poti.. anschluss(ganz rechts) dann Mittelanzapfung (der in der Mitte) geht direkt auf VEE linke anschluss von poti geht auf ground
>steht doch oben!
Wo? Poste bitte einen Link auf eine Beitrag in diesem Thread wo Du den
Code gepostet hast.
Markus schrieb: > Also > > Das Alte Display mit dem es Funkitoniert heißt BT 21605 v1 > Leider habe ich hierzu keine genauen Pläne > > https://docs.google.com/viewer?a=v&q=cache:2XKWcUH... > > ich verwende die orignale lcd.h und habe derweitig nichts verändern > wenn ich genau abzüge von der lcd.h haben wollt schicke ich die euch > gerne > > > Nun verwende ich das Display EA DIP 162-D von Conrad > > http://www.conrad.de/ce/de/product/181731/Alphanum... > > > > int main() > { > uint16_t ADC_Messung1, ADC_Messung2; > char Umwandlung[20]; > lcd_init(LCD_DISP_ON_CURSOR); // Display initialisieren > lcd_puts("Spannung\n"); // Spannungnzeige > lcd_puts("Strom"); // Stromverbauch > } hier ganz unten? welchen code willst du ? hier meine lcd.h fallst du diese brauchst
1 | #ifndef LCD_H
|
2 | #define LCD_H
|
3 | /*************************************************************************
|
4 | Title : C include file for the HD44780U LCD library (lcd.c)
|
5 | Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
|
6 | File: $Id: lcd.h,v 1.13.2.2 2006/01/30 19:51:33 peter Exp $
|
7 | Software: AVR-GCC 3.3
|
8 | Hardware: any AVR device, memory mapped mode only for AT90S4414/8515/Mega
|
9 | ***************************************************************************/
|
10 | |
11 | /**
|
12 | @defgroup pfleury_lcd LCD library
|
13 | @code #include <lcd.h> @endcode
|
14 |
|
15 | @brief Basic routines for interfacing a HD44780U-based text LCD display
|
16 | |
17 | Originally based on Volker Oth's LCD library,
|
18 | changed lcd_init(), added additional constants for lcd_command(),
|
19 | added 4-bit I/O mode, improved and optimized code.
|
20 |
|
21 | Library can be operated in memory mapped mode (LCD_IO_MODE=0) or in
|
22 | 4-bit IO port mode (LCD_IO_MODE=1). 8-bit IO port mode not supported.
|
23 | |
24 | Memory mapped mode compatible with Kanda STK200, but supports also
|
25 | generation of R/W signal through A8 address line.
|
26 |
|
27 | @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury
|
28 |
|
29 | |
30 | */
|
31 | |
32 | /*@{*/
|
33 | |
34 | #if (__GNUC__ * 100 + __GNUC_MINOR__) < 303
|
35 | #error "This library requires AVR-GCC 3.3 or later, update to newer AVR-GCC compiler !"
|
36 | #endif
|
37 | |
38 | #include <inttypes.h> |
39 | #include <avr/pgmspace.h> |
40 | |
41 | /**
|
42 | * @name Definitions for MCU Clock Frequency
|
43 | * Adapt the MCU clock frequency in Hz to your target.
|
44 | */
|
45 | #ifndef F_CPU
|
46 | #error "F_CPU not defined, assumed clock frequency 1 MHz!"
|
47 | #define XTAL 1000000
|
48 | #else
|
49 | #define XTAL F_CPU /**< clock frequency in Hz, used to calculate delay timer */ |
50 | #endif
|
51 | |
52 | |
53 | /**
|
54 | * @name Definition for LCD controller type
|
55 | * Use 0 for HD44780 controller, change to 1 for displays with KS0073 controller.
|
56 | */
|
57 | #define LCD_CONTROLLER_KS0073 0 /**< Use 0 for HD44780 controller, 1 for KS0073 controller */ |
58 | |
59 | /**
|
60 | * @name Definitions for Display Size
|
61 | * Change these definitions to adapt setting to your display
|
62 | */
|
63 | #define LCD_LINES 2 /**< number of visible lines of the display */ |
64 | #define LCD_DISP_LENGTH 16 /**< visibles characters per line of the display */ |
65 | #define LCD_LINE_LENGTH 0x40 /**< internal line length of the display */ |
66 | #define LCD_START_LINE1 0x00 /**< DDRAM address of first char of line 1 */ |
67 | #define LCD_START_LINE2 0x40 /**< DDRAM address of first char of line 2 */ |
68 | #define LCD_START_LINE3 0x14 /**< DDRAM address of first char of line 3 */ |
69 | #define LCD_START_LINE4 0x54 /**< DDRAM address of first char of line 4 */ |
70 | #define LCD_WRAP_LINES 0 /**< 0: no wrap, 1: wrap at end of visibile line */ |
71 | |
72 | |
73 | #define LCD_IO_MODE 1 /**< 0: memory mapped mode, 1: IO port mode */ |
74 | #if LCD_IO_MODE
|
75 | /**
|
76 | * @name Definitions for 4-bit IO mode
|
77 | * Change LCD_PORT if you want to use a different port for the LCD pins.
|
78 | *
|
79 | * The four LCD data lines and the three control lines RS, RW, E can be on the
|
80 | * same port or on different ports.
|
81 | * Change LCD_RS_PORT, LCD_RW_PORT, LCD_E_PORT if you want the control lines on
|
82 | * different ports.
|
83 | *
|
84 | * Normally the four data lines should be mapped to bit 0..3 on one port, but it
|
85 | * is possible to connect these data lines in different order or even on different
|
86 | * ports by adapting the LCD_DATAx_PORT and LCD_DATAx_PIN definitions.
|
87 | *
|
88 | */
|
89 | #define LCD_PORT PORTC /**< port for the LCD lines */ |
90 | #define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */ |
91 | #define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */ |
92 | #define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */ |
93 | #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */ |
94 | #define LCD_DATA0_PIN 4 /**< pin for 4bit data bit 0 */ |
95 | #define LCD_DATA1_PIN 5 /**< pin for 4bit data bit 1 */ |
96 | #define LCD_DATA2_PIN 6 /**< pin for 4bit data bit 2 */ |
97 | #define LCD_DATA3_PIN 7 /**< pin for 4bit data bit 3 */ |
98 | #define LCD_RS_PORT LCD_PORT /**< port for RS line */ |
99 | #define LCD_RS_PIN 0 /**< pin for RS line */ |
100 | #define LCD_RW_PORT LCD_PORT /**< port for RW line */ |
101 | #define LCD_RW_PIN 1 /**< pin for RW line */ |
102 | #define LCD_E_PORT LCD_PORT /**< port for Enable line */ |
103 | #define LCD_E_PIN 2 /**< pin for Enable line */ |
104 | |
105 | #elif defined(__AVR_AT90S4414__) || defined(__AVR_AT90S8515__) || defined(__AVR_ATmega64__) || \
|
106 | defined(__AVR_ATmega8515__)|| defined(__AVR_ATmega103__) || defined(__AVR_ATmega128__) || \
|
107 | defined(__AVR_ATmega161__) || defined(__AVR_ATmega162__)
|
108 | /*
|
109 | * memory mapped mode is only supported when the device has an external data memory interface
|
110 | */
|
111 | #define LCD_IO_DATA 0xC000 /* A15=E=1, A14=RS=1 */ |
112 | #define LCD_IO_FUNCTION 0x8000 /* A15=E=1, A14=RS=0 */ |
113 | #define LCD_IO_READ 0x0100 /* A8 =R/W=1 (R/W: 1=Read, 0=Write */ |
114 | #else
|
115 | #error "external data memory interface not available for this device, use 4-bit IO port mode"
|
116 | |
117 | #endif
|
118 | |
119 | |
120 | /**
|
121 | * @name Definitions for LCD command instructions
|
122 | * The constants define the various LCD controller instructions which can be passed to the
|
123 | * function lcd_command(), see HD44780 data sheet for a complete description.
|
124 | */
|
125 | |
126 | /* instruction register bit positions, see HD44780U data sheet */
|
127 | #define LCD_CLR 0 /* DB0: clear display */ |
128 | #define LCD_HOME 1 /* DB1: return to home position */ |
129 | #define LCD_ENTRY_MODE 2 /* DB2: set entry mode */ |
130 | #define LCD_ENTRY_INC 1 /* DB1: 1=increment, 0=decrement */ |
131 | #define LCD_ENTRY_SHIFT 0 /* DB2: 1=display shift on */ |
132 | #define LCD_ON 3 /* DB3: turn lcd/cursor on */ |
133 | #define LCD_ON_DISPLAY 2 /* DB2: turn display on */ |
134 | #define LCD_ON_CURSOR 1 /* DB1: turn cursor on */ |
135 | #define LCD_ON_BLINK 0 /* DB0: blinking cursor ? */ |
136 | #define LCD_MOVE 4 /* DB4: move cursor/display */ |
137 | #define LCD_MOVE_DISP 3 /* DB3: move display (0-> cursor) ? */ |
138 | #define LCD_MOVE_RIGHT 2 /* DB2: move right (0-> left) ? */ |
139 | #define LCD_FUNCTION 5 /* DB5: function set */ |
140 | #define LCD_FUNCTION_8BIT 4 /* DB4: set 8BIT mode (0->4BIT mode) */ |
141 | #define LCD_FUNCTION_2LINES 3 /* DB3: two lines (0->one line) */ |
142 | #define LCD_FUNCTION_10DOTS 2 /* DB2: 5x10 font (0->5x7 font) */ |
143 | #define LCD_CGRAM 6 /* DB6: set CG RAM address */ |
144 | #define LCD_DDRAM 7 /* DB7: set DD RAM address */ |
145 | #define LCD_BUSY 7 /* DB7: LCD is busy */ |
146 | |
147 | /* set entry mode: display shift on/off, dec/inc cursor move direction */
|
148 | #define LCD_ENTRY_DEC 0x04 /* display shift off, dec cursor move dir */ |
149 | #define LCD_ENTRY_DEC_SHIFT 0x05 /* display shift on, dec cursor move dir */ |
150 | #define LCD_ENTRY_INC_ 0x06 /* display shift off, inc cursor move dir */ |
151 | #define LCD_ENTRY_INC_SHIFT 0x07 /* display shift on, inc cursor move dir */ |
152 | |
153 | /* display on/off, cursor on/off, blinking char at cursor position */
|
154 | #define LCD_DISP_OFF 0x08 /* display off */ |
155 | #define LCD_DISP_ON 0x0C /* display on, cursor off */ c |
156 | #define LCD_DISP_ON_BLINK 0x0D /* display on, cursor off, blink char */ |
157 | #define LCD_DISP_ON_CURSOR 0x0E /* display on, cursor on */ |
158 | #define LCD_DISP_ON_CURSOR_BLINK 0x0F /* display on, cursor on, blink char */ |
159 | |
160 | /* move cursor/shift display */
|
161 | #define LCD_MOVE_CURSOR_LEFT 0x10 /* move cursor left (decrement) */ |
162 | #define LCD_MOVE_CURSOR_RIGHT 0x14 /* move cursor right (increment) */ |
163 | #define LCD_MOVE_DISP_LEFT 0x18 /* shift display left */ |
164 | #define LCD_MOVE_DISP_RIGHT 0x1C /* shift display right */ |
165 | |
166 | /* function set: set interface data length and number of display lines */
|
167 | #define LCD_FUNCTION_4BIT_1LINE 0x20 /* 4-bit interface, single line, 5x7 dots */ |
168 | #define LCD_FUNCTION_4BIT_2LINES 0x28 /* 4-bit interface, dual line, 5x7 dots */ |
169 | #define LCD_FUNCTION_8BIT_1LINE 0x30 /* 8-bit interface, single line, 5x7 dots */ |
170 | #define LCD_FUNCTION_8BIT_2LINES 0x38 /* 8-bit interface, dual line, 5x7 dots */ |
171 | |
172 | |
173 | #define LCD_MODE_DEFAULT ((1<<LCD_ENTRY_MODE) | (1<<LCD_ENTRY_INC) )
|
174 | |
175 | |
176 | |
177 | /**
|
178 | * @name Functions
|
179 | */
|
180 | |
181 | |
182 | /**
|
183 | @brief Initialize display and select type of cursor
|
184 | @param dispAttr \b LCD_DISP_OFF display off\n
|
185 | \b LCD_DISP_ON display on, cursor off\n
|
186 | \b LCD_DISP_ON_CURSOR display on, cursor on\n
|
187 | \b LCD_DISP_ON_CURSOR_BLINK display on, cursor on flashing
|
188 | @return none
|
189 | */
|
190 | extern void lcd_init(uint8_t dispAttr); |
191 | |
192 | |
193 | /**
|
194 | @brief Clear display and set cursor to home position
|
195 | @param void
|
196 | @return none
|
197 | */
|
198 | extern void lcd_clrscr(void); |
199 | |
200 | |
201 | /**
|
202 | @brief Set cursor to home position
|
203 | @param void
|
204 | @return none
|
205 | */
|
206 | extern void lcd_home(void); |
207 | |
208 | |
209 | /**
|
210 | @brief Set cursor to specified position
|
211 |
|
212 | @param x horizontal position\n (0: left most position)
|
213 | @param y vertical position\n (0: first line)
|
214 | @return none
|
215 | */
|
216 | extern void lcd_gotoxy(uint8_t x, uint8_t y); |
217 | |
218 | |
219 | /**
|
220 | @brief Display character at current cursor position
|
221 | @param c character to be displayed
|
222 | @return none
|
223 | */
|
224 | extern void lcd_putc(char c); |
225 | |
226 | |
227 | /**
|
228 | @brief Display string without auto linefeed
|
229 | @param s string to be displayed
|
230 | @return none
|
231 | */
|
232 | extern void lcd_puts(const char *s); |
233 | |
234 | |
235 | /**
|
236 | @brief Display string from program memory without auto linefeed
|
237 | @param s string from program memory be be displayed
|
238 | @return none
|
239 | @see lcd_puts_P
|
240 | */
|
241 | extern void lcd_puts_p(const char *progmem_s); |
242 | |
243 | |
244 | /**
|
245 | @brief Send LCD controller instruction command
|
246 | @param cmd instruction to send to LCD controller, see HD44780 data sheet
|
247 | @return none
|
248 | */
|
249 | extern void lcd_command(uint8_t cmd); |
250 | |
251 | |
252 | /**
|
253 | @brief Send data byte to LCD controller
|
254 |
|
255 | Similar to lcd_putc(), but without interpreting LF
|
256 | @param data byte to send to LCD controller, see HD44780 data sheet
|
257 | @return none
|
258 | */
|
259 | extern void lcd_data(uint8_t data); |
260 | |
261 | |
262 | /**
|
263 | @brief macros for automatically storing string constant in program memory
|
264 | */
|
265 | #define lcd_puts_P(__s) lcd_puts_p(PSTR(__s))
|
266 | |
267 | /*@}*/
|
268 | #endif //LCD_H
|
Warum lasst ihr es nicht einfach, es hat doch ueberhaupt keinen Sinn. Man liest doch schon in den ersten paar Beitraegen das dieser Herr voellig beratungsresistent und ueberfordert ist. Der Thread wird wieder 30 Seiten lang und rauskommen tut nbichts, weil der Herr Frager keine Fragen beantwortet. Im Uebrigen, mal die Datenblaetter der beiden Displays genauer angesehen ? Und noch was. Wie bescheuert muss man sein 30.- fuer ein simples LCD auszugeben ? Vor allem wenn man keinerlei Plan hat was man da macht. Bei Reichelt haette man dafuer 3 bekommen, in der Bucht 10 und beim Chinesen 30. Zum Quelltext, ich wette der ist aus dem Tutorial. "hello world" oder sowas.
ja dann erklär mir warum bei einem display es funktioniert und warum bei den anderem nicht?
Sag mal, wenn Dich jemand bittet ihm Dein Auto zu leihen, rollst Du dann auch den rechten Hinterreifen vor seine Haustür und fügst hinzu: Hier ist das Auto! Oder was meintest Du mit Auto?
Und so Sinnvoll. Mit den Zeilenumbruechen sehr ueberschaubar. Man man. Ein Link hatte gereicht. Standard LCD.h
achja.. welchen code willst du ? was soll darin stehen? mein quellcode steht oben... dieser funktioniert bei dem BT 21605
Markus schrieb: > mein quellcode steht oben... WO ? Muessen wohl alle hier Blind sein, nur Du nicht.
Na ja. Grummel. Jedenfalls, falls das wirklich die H-Datei ist mit der das alte Display lief, dann war auch das ein HD-Dings kompatibles. Die neueren mit dieser Bezeichnung haben den. Die älter'n wohl nicht, sondern ein KS0073. Siehe: Beitrag "Re: BT 21605 V1 Manual gesucht?" Dann besteht die Möglichkeit das es geringe Abweichungen im Timing gibt, wie ich hier: Beitrag "Re: LCD Display funktioniert nicht" und einige Posts später noch einmal schrieb. Wenn Du Glück hast, dann findest Du einen für dieses Display angepassten Code im Internet.
#include <avr/io.h> #include <util/delay.h> #include "lcd.h" int main() { uint16_t ADC_Messung1, ADC_Messung2; char Umwandlung[20]; lcd_init(LCD_DISP_ON_CURSOR); // Display initialisieren lcd_puts("Spannung\n"); // Spannungnzeige lcd_puts("Strom"); // Stromverbauch } was bitte ist das? der quellcode oder nicht? ist nur ein kleinder auszug
>achja.. >welchen code willst du ? >was soll darin stehen? Jetzt geb ich's endgültig auf. Hast Du das hier gelesen? >Sag mal, wenn Dich jemand bittet ihm Dein Auto zu leihen, rollst Du dann >auch den rechten Hinterreifen vor seine Haustür und fügst hinzu: Hier >ist das Auto! Oder was meintest Du mit Auto? Ich rede von dem GESAMTEN code.
Ich kann mir nicht helfen. Die Bilder sehen ganz danach aus, als ob der Kontrast zu stark aufgedreht ist. (Das ist die normale Fleury LCD Lib. Sag das doch einfach. Und nein. Die Hintergrundbeleuchtung hat damit nicht das geringste zu tun. Die leuchtet entweder, oder sie leuchtet nicht)
Karl Heinz Buchegger schrieb: > Ich kann mir nicht helfen. > Die Bilder sehen ganz danach aus, als ob der Kontrast zu stark > aufgedreht ist. Garnicht. Guck Dir mal das linke und rechte Bild an. Das sieht nach Initialisierungsfehler aus. Aber da das hier zu sehr nach Hellseherei geht, halt step by step. Obwohl ich persoenlich da garkeinen Bock drauf habe. Markus schrieb: > Ich nehme 5V geh auf nen Widerstand 27kOhm der widerum geht auf nen > poti.. > anschluss(ganz rechts) dann Mittelanzapfung (der in der Mitte) geht > direkt auf VEE linke anschluss von poti geht auf ground Welchen Wert hat das Poti ? Lass den Widerstand weg. Poti aeussere Pins auf 5V und GND, Schleifer auf Vo Wenn Du das gemacht hast, meldest Dich wieder und berichtest "mit dem ganzen Auto". Und danach programmierst Du mal ein Standard LCD Testprogramm a la Tutorial hier aus dem Forum. https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
Es muss auf jeden Fall erstmal gehen, das du mit deinem Kontrastpoti die Balken auch ganz wegdrehen kannst. Bei 5V Spannung und einem typischen HD44780 Display liegt die Kontrastspannung recht nah an 0 Volt für sichtbare Zeichen.
Schon im ersten Post steht, das das wohl der Fehler sein koennte. Aber er hoert ja nicht und misst lieber den Strom der Beleuchtung am "Briefkasten". Markus schrieb: > Ich nehme 5V geh auf nen Widerstand 27kOhm der widerum geht auf nen > poti.. Was soll der Widerstand da eigentlich ? Wo im Web findet man solchen Schwachsinn ? Ueblicherweise kommt da nur ein Trimmer (grob 10k - 50k) dran und evtl. noch ein Elko. Zumindest an Bastel LCDs. Das vom Conrad ist schon ein Hochtemperaturdisplay, da reicht es den Kontrast einmal fest einzustellen wenn man den Wert kennt. Aber den kennst Du nicht, also muss ein Trimmer her.
>> Ich kann mir nicht helfen. >> Die Bilder sehen ganz danach aus, als ob der Kontrast zu stark >> aufgedreht ist. > >Garnicht. Guck Dir mal das linke und rechte Bild an. Das sieht nach >Initialisierungsfehler aus. Karl Heinz hat recht. Das Display ist initialisiert. Das sieht man daran das die zweite Zeile auch den Balken bekommt. Der Kontrast stimmt einfach nur nicht. Die Anzeige ist ja schon rot statt vermutlich weiss.
Hi >Was soll der Widerstand da eigentlich ? Wo im Web findet man solchen >Schwachsinn ? Ueblicherweise kommt da nur ein Trimmer (grob 10k - 50k) >dran und evtl. noch ein Elko. Sieh mal ins Datenblatt des EA DIP162-D. Da steht es genau so drin. Und nicht nur in dem Datenblatt von Electronic Assembly. MfG Spess
holger schrieb: > Das Display ist initialisiert. Das sieht man daran > das die zweite Zeile auch den Balken bekommt. Ja, im ersten Bild und im Zweiten ? > Der Kontrast stimmt einfach nur nicht. Die Anzeige > ist ja schon rot statt vermutlich weiss. Kann sein, aber Fotos von LCDs ist immer so eine Sache. Sehen wir das raus kommt wenn der Trimmer dran ist und er sich vielleicht mal meldet. Spess53 schrieb: > Sieh mal ins Datenblatt des EA DIP162-D. Das ist aber doch nicht sein Display, also was soll denn der Unsinn jetzt ?
Peter W. schrieb: > holger schrieb: >> Das Display ist initialisiert. Das sieht man daran >> das die zweite Zeile auch den Balken bekommt. > > Ja, im ersten Bild und im Zweiten ? Im zweiten Bild sehe ich in beiden Zeilen Balken. Auch das ein Hinweis darauf, dass der Kontrast nicht stimmt. Bei einem nicht initialisiertem LCD sieht man einen Balken in der ersten Zeile. Und zwar nur 1 Balken. Von der anderen Zeile sieht man im Idealfall gar nichts. > Kann sein, aber Fotos von LCDs ist immer so eine Sache. Das allerdings ist richtig. Es ist allerdings kein Problem den Gegentest zu machen (Warum kommen eigentlich immer die wenigsten Anfänger auf die Idee auch mal einen Gegentest zu machen? Datenleitungen abklemmen, sodass das LCD ganz sicher nicht initialisiert wird. Spannung drauf und dann den Kontrast so einstellen, dass man in der ersten Zeile die Balken sauber schwarz auf weiß sieht (oder welche Farbe auch immer) und sich in der zweiten Zeile noch nichts tut. Das sollte fürs erste eine Kontrasteinstellung sein, mit der man auf jeden Fall was sehen wird. Dann alles wieder verkabeln und mal die Init drauf loslaufen lassen. Wenn es initialisierst, dann müsste man jetzt auf jeden Fall etwas vom Text sehen. Eventuell noch nicht optimial im Kontrast aber das lässt sich ja mit dem Poti noch nachkorrigieren. >> Sieh mal ins Datenblatt des EA DIP162-D. > > Das ist aber doch nicht sein Display, also was soll denn der Unsinn > jetzt ? Äh. Doch. Das ist genau das, welches er sich gekauft hat.
Wobei ja auch nicht wirklich klar ist, was denn die beiden Bilder überhaupt darstellen. Vor der Initialisierung / danach ?
Karl Heinz Buchegger schrieb: >>> Sieh mal ins Datenblatt des EA DIP162-D. >> >> Das ist aber doch nicht sein Display, also was soll denn der Unsinn >> jetzt ? > > Äh. Doch. > Das ist genau das, welches er sich gekauft hat. Stimmt Da habe ich was verwechselt. Sry Spess Eben, weil auf dem zweiten Bild der Kontrast ganz anders aussieht wie auf dem ersten Bild, naemlich nicht so roetlich, glaube ich eher an Initialisierungsprobleme. Aber da er sich jetzt wohl auf den Schlips getreten fuehlt und sich wohl nicht mehr meldet. Egal. Karl Heinz Buchegger schrieb: > Wobei ja auch nicht wirklich klar ist, was denn die beiden Bilder > überhaupt darstellen. Vor der Initialisierung / danach ? Auch wieder wahr. Also kein Stueck schlauer.
Ich habe gerade mal so ein blau weisses Display von EA angeschlossen. Ist zwar kein EA DIP162 sondern ein W162B, aber was solls. Die Dinger sind extrem Blickwinkelabhängig. Drehe ich den Kontrast voll auf ist erstmal alles weiss. Je nach dem wie man das Display dreht kommt dann aber auch gelb oder rot dabei raus. Schaut man direkt drauf kann man den Text nicht lesen. Dreht man es ein bisschen ist der Text zumindest zu sehen. Ich geh jetzt davon aus das der Kontrast wohl nicht das Problem ist. Fleury benutzt ja den Busy Check. Ich könnte mir vorstellen das die RW Leitung nicht richtig angeschlossen ist und das Programm dort klemmt. Deshalb wird kein Text angezeigt. Die Initialisierung wird ohne Busy Check gemacht und läuft deshalb durch.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.