www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik my AVR+LCD Problem


Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute hab mir das myAVR borad 1 lpt geholt und auch das LCD aber 
nicht fertig da es nicht lagernd war sondern die teile einzeln gekauft. 
Es sin aber die gleichen!

Das Board funktioniert super jedoch wenn ich das LCD anschließe habe ich 
in jeder Zeile schwarze dicke Striche?

Hab schon alles durchgemessen auf Durchgang und geguckt ob auch die 
Datenleitungen richtig sind jedoch finde ich keinen Fehler?
Wenn ich alle Datenleitungen abschließe tut sich komischer Weise nichts.
Hier mal der Programmcode
;---------------------------------------------------------------------------
; Title   : Programmbeispiel für myAVR-Board mit LCD Add-On
;---------------------------------------------------------------------------
; Funktion   : gibt die Zeichenkette "Hallo myAVR" auf dem myAVR LCD aus
; Schaltung   : LCD Add On, R/W=Masse
;---------------------------------------------------------------------------
; Prozessor   : ATmega8
; Takt   : 3,6864 MHz
; Sprache   : Assembler
; Datum   : 03.02.2005
; Version   : 1.6
; Autor   : Dipl. Ing. Päd. Alexander Huwaldt
;---------------------------------------------------------------------------
.include  "AVR.H"
;---------------------------------------------------------------------------
; Reset- und Interrupt Vector  ;VNr  .Beschreibung
  rjmp  main  ;1    POWER ON RESET
  reti    ;2    Int0-Interrupt
  reti     ;3    Int1-Interrupt
  reti     ;4    TC2 Compare Match
  reti    ;5    TC2 Overflow
  reti    ;6    TC1 Capture
  reti    ;7    TC1 Compare Match A
  reti    ;8    TC1 Compare Match B
  reti    ;9    TC1 Overflow
  reti    ;10    TC0 Overflow
  reti    ;11    SPI, STC Serial Transfer Complete
  reti    ;12    UART Rx Complete
  reti    ;13    UART Data Register Empty
  reti    ;14    UART Tx complete
  reti    ;15    ADC Conversion Complete
  reti     ;16    EEPROM Ready
  reti     ;17    Analog Comperator
  reti     ;18    TWI (I²C) Serial Interface
  reti     ;19    Store Program Memory Ready
;---------------------------------------------------------------------------
; Start, Power ON, Reset
main:  ldi  r16,lo8(RAMEND)
  out  SPL,r16  ; Init Stackpointer LO
  ldi  r16,hi8(RAMEND)
  out  SPH,r16  ; Init Stackpointer HI
  rcall  LCD_init
;---------------------------------------------------------------------------
mainloop:  rcall  wait
  ldi  r16, 'H'
  rcall  LCD_data
  ldi  r16, 'a'
  rcall  LCD_data
  ldi  r16, 'l'
  rcall  LCD_data
  ldi  r16, 'l'
  rcall   LCD_data
  ldi   r16, 'o'
  rcall   LCD_data
  ldi   r16, ' '
  rcall   LCD_data
  ldi  r16, 'm'
  rcall  LCD_data
  ldi  r16, 'y'
  rcall  LCD_data
  ldi  r16, 'A'
  rcall  LCD_data
  ldi  r16, 'V'
  rcall   LCD_data
  ldi   r16, 'R'
  rcall   LCD_data
  ldi   r16, '!'
  rcall   LCD_data
  ldi   r16, ' '
  rcall   LCD_data
  rjmp   mainloop
;===========================================================================
;hier Unterprogramme und Interruptroutinen zufügen
;---------------------------------------------------------------------------
wait:  push  r24
  ldi  r24,0x13  ; hier Delay einstellen 13 = ca. 20yS
w1:  subi  r24,0x01
   rcall  wait20ms
  brcc  w1
  pop  r24
  ret
;---------------------------------------------------------------------------
wait5ms:  ldi  r16, 255
  ldi  r17,26
w5ms:  dec  r16
  brne  w5ms
  dec  r17
  brne  w5ms
  ret
;---------------------------------------------------------------------------
wait20ms:  ldi  r16, 255
  ldi  r17,104
w20ms:  dec  r16
  brne  w20ms
  dec  r17
  brne  w20ms
  ret
;---------------------------------------------------------------------------
LCD_init:     sbi  DDRD,2          ; LCD RS = OUT
    sbi  DDRD,3          ; LCD E  = OUT
    sbi  DDRD,4        ; LCD D4 = OUT
    sbi  DDRD,5        ; LCD D5 = OUT
    sbi  DDRD,6         ; LCD D6 = OUT
    sbi  DDRD,7         ; LCD D7 = OUT
    cbi  PORTD,2          ; LDC RS = Low

    ; warte bis PowerUp
    ldi  r18,20
powerup:  rcall   wait5ms
    dec  r18
    brne  powerup          ; Power-Up Wartezyklus min 30 ms

    ; sende Resetsequenz kompatibel zu HD44780 Industriestandard
    ldi  r16,0b00110000      ; Reset-Sequenz Teil 1
    out  PORTD,r16
    rcall  LCD_enable      ; Enable-Impuls
    rcall  wait5ms
    ldi  r16,0b00110000      ; Reset-Sequenz Teil 2
    out  PORTD,r16
    rcall  LCD_enable      ; Enable-Impuls
    rcall  wait5ms
    ldi  r18,100        ; Wartezyklus bei RESET LCD min 100 µs
resetLCD:  
    nop
    nop  
    nop
    dec  r18
    brne  resetLCD
    ldi  r16,0b00110000      ; Reset-Sequenz Teil 3
    out  PORTD,r16
    rcall  LCD_enable      ; Enable-Impuls
    rcall  wait5ms

                ; sende init 1
    ldi  r16, 0b00100000        ; 4 Bit Modus aktivieren
    out  PORTD, r16
    rcall   LCD_enable       ; Enable-Impuls
    rcall   wait5ms
    ldi  r16, 0b00101000
    rcall   LCD_cmd             ; Function Set 4 Bit, 2 Zeilen, 5x7
    rcall   LCD_off
    rcall   LCD_clear
    ldi  r16, 0x06
    rcall   LCD_cmd        ; Entry Mode Set, increase+shifted
    rcall   LCD_on
    ret
;---------------------------------------------------------------------------
LCD_data:   ldi  r18,0b0000100  ; RS = hi
  rjmp  LCD_out
;---------------------------------------------------------------------------
LCD_cmd:  ldi  r18,0b0000000  ; RS = lo
LCD_out:  mov  r17, r16
  swap  r17
  andi  r16, 0b11110000
  or  r16,r18
  andi  r17, 0b11110000
  or  r17,r18
  out  PORTD, r16
  rcall   LCD_enable
  out  PORTD, r17
  rcall   LCD_enable
  rcall   wait5ms
  ret
;---------------------------------------------------------------------------
LCD_enable: sbi  PORTD, 3  ; Enable high
  nop    ; kurz warten
  nop
  nop
  cbi  PORTD, 3  ; Enable wieder low
  ret
;---------------------------------------------------------------------------
LCD_clear:  ldi  r16, 0b00000001  ; Display löschen
  rcall   LCD_cmd
  rcall   wait5ms
  ret
;---------------------------------------------------------------------------
LCD_off:  ldi  r16, 0b00001000
  rcall   LCD_cmd
  rcall   wait5ms
  ret
;---------------------------------------------------------------------------
LCD_on:  ldi  r16, 0x0E
  rcall   LCD_cmd
  rcall   wait5ms
  ret
;---------------------------------------------------------------------------
Wenn ich die R/W Jumper umdrehe passiert auch nichts?
Bitte kann mir jemand helfen.


Frank

Autor: flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>jedoch wenn ich das LCD anschließe habe ich
>in jeder Zeile schwarze dicke Striche?
ist der kontrast vielleicht zu hoch eingestellt?
einfach mal ein bisschen am poti drehen...

ansonsten könnte es noch sein das die initialisierung nicht richtig 
funktioniert...

gruß
flo

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe nur überflogen, aber:
LCD_init:     sbi  DDRD,2          ; LCD RS = OUT
    sbi  DDRD,3          ; LCD E  = OUT
    sbi  DDRD,4        ; LCD D4 = OUT
    sbi  DDRD,5        ; LCD D5 = OUT
    sbi  DDRD,6         ; LCD D6 = OUT
    sbi  DDRD,7         ; LCD D7 = OUT
    cbi  PORTD,2          ; LDC RS = Low
...
    ldi  r16,0b00110000      ; Reset-Sequenz Teil 1
    out  PORTD,r16
    rcall  LCD_enable      ; Enable-Impuls

hier wird E auf L gesetzt.

LCD_enable: sbi  PORTD, 3  ; Enable high
  nop    ; kurz warten
  nop
  nop
  cbi  PORTD, 3  ; Enable wieder low
  ret

hier auch, wie soll das einen L-H-L impuls erzeugen?
Das Display übernimmt die Daten mit der H-L Flanke, die wird aber nie 
erzeugt.

Sorge dafür, daß E immer auf L bleibt und ändere LCD_enable:
LCD_enable: sbi  PORTD, 3  ; Enable high
  sbi  PORTD,3   ; Enable auf H
  nop    ; kurz warten
  nop
  nop
  cbi  PORTD, 3  ; Enable wieder low
  ret

Gruß aus Berlin
Michael

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lustig. Ich habe genau dasselbe Problem doch der Code + die Umänderung 
hat nichts gebracht. Vorher hatte ich den Code drinnen.
 #define   F_CPU 3686400
#include  <avr\io.h>
#include  <util\delay.h>



/////////////////////////////////////////////////////////////////////////////
// allgemeine-Funktionen
//---------------------------------------------------------------------------
//  wait_ms(..) - Wartet einige Millisekunden
//  Die Dauer ist nicht kalibriert.
//  PE:  miliSec=Anzahl der zu wartenden Millisekunden
//---------------------------------------------------------------------------
void wait_ms(int miliSec)
{
  _delay_loop_2( 1*(F_CPU/(1000/4)) * miliSec);  // 4 Zyklen warteschleife
}
void wait_us(int mikroSec)
{
  _delay_loop_2( 1*(F_CPU/(1000000/4)) * mikroSec);  // 4 Zyklen warteschleife
}
//////////////////////////////////////////////////////////////////////////////
//  LCD-Funktionen für myAVR-Board + myAVR-LCD
//  4-BitModus an PortD Bit 4-7
//  PortD Bit 2 = RS, high=Daten, low=Kommando
//  PortD Bit 3 = E, high-Impuls für gültige Daten
//---------------------------------------------------------------------------
//  lcd_send(..) - sendet ein Byte an LCD im 4-Bit-Modus
//  RS muss vorher richtig gesetzt sein
//  PE:  data=zu sendendes Byte
//---------------------------------------------------------------------------
void lcd_send(char data)
{
  // aktuelles RS ermitteln
  char rs=PORTD;
  rs&=4;
  // High-Teil senden
  char tmp=data;
  tmp&=0xf0;
  tmp|=rs;
  PORTD=tmp;
  // Schreibsignal
  sbi(PORTD,3);
  cbi(PORTD,3);
  // Low-Teil senden
  tmp=data;
  tmp&=0x0f;
  tmp*=16;
  tmp|=rs;
  PORTD=tmp;
  // Schreibsignal
  sbi(PORTD,3);
  cbi(PORTD,3);
  // verarbeiten lassen
  wait_ms(1);
}
//---------------------------------------------------------------------------
//  lcd_cmd(..) - sendet ein Kommando an LCD
//  PE:  cmd=Kommando-Byte
//---------------------------------------------------------------------------
void lcd_cmd(char cmd)
{
  cbi(PORTD,2);    // RS löschen = Kommando
  lcd_send(cmd);    // senden
}
//---------------------------------------------------------------------------
//  lcd_write(..) - sendet ein Zeichen (Daten) an LCD
//  PE:  text=Zeichen
//---------------------------------------------------------------------------
void lcd_write(char text)
{
  sbi(PORTD,2);    // RS setzen = Daten
  lcd_send(text);    // senden
}
//---------------------------------------------------------------------------
//  lcd_write(..) - sendet eine Zeichenkette an LCD
//  Die Zeichenkette muss mit 0x00 abgeschlossen sein
//  PE:  pText=Zeiger auf Zeichenkette
//---------------------------------------------------------------------------
void lcd_write(char* pText)
{
  while(pText[0]!=0)
  {
    lcd_write(pText[0]);
    pText++;
  }
}
//---------------------------------------------------------------------------
//  lcd_write(..) - sendet eine Zeichenkette an LCD
//  PE:  pText=Zeiger auf Zeichenkette
//    count=Anzahl der zu sendenden Zeichen
//---------------------------------------------------------------------------
void lcd_write(char* pText, int count)
{
  while(count!=0)
  {
    lcd_write(pText[0]);
    pText++;
    count--;
  }
}
//---------------------------------------------------------------------------
//  lcd_home(..) - Cursor auf Position 1,1
//---------------------------------------------------------------------------
void lcd_home()
{
  lcd_cmd(0x02);
  wait_ms(2);      // warten
}
//---------------------------------------------------------------------------
//  lcd_clear(..) - löscht die Anzeige im LCD
//---------------------------------------------------------------------------
void lcd_clear()
{
  lcd_cmd(0x01);
  wait_ms(2);      // warten
}
//---------------------------------------------------------------------------
//  lcd_on(..) - schaltet das LCD an
//---------------------------------------------------------------------------
void lcd_on()
{
  lcd_cmd(0x0E);
}
//---------------------------------------------------------------------------
//  lcd_off(..) - schaltet das LCD aus
//---------------------------------------------------------------------------
void lcd_off()
{
  lcd_cmd(0x08);
}
//---------------------------------------------------------------------------
//  lcd_goto(..) - setzt die Cursorposition
//   PE:  row = Zeile 1..2
//    col = Spalte 1..16
//---------------------------------------------------------------------------
void lcd_goto(int row, int col)
{
  row--;        // Null-basierend
  row&=0x01;      // sicherheitshalber
  row*=0x40;      // Zeile nach Bit 6 bringen
  col--;        // Null-basierend
  col&=0x0f;      // sicherheitshalber
  char tmp=row|col;
  tmp|=0x80;      // Cursor setzen
  lcd_cmd(tmp);    // senden
}
//---------------------------------------------------------------------------
//  lcd_init(..) - Schaltet die Ports und Initialisiert das LCD
//---------------------------------------------------------------------------
void lcd_init()
{
  // Port D = Ausgang
  DDRD=0xff;
  PORTD=0;
  // warten bist LCD-Controller gebootet
  wait_ms(50);    
  // SOFT-RESET
  PORTD = 0x30;  //0b00110000;
  sbi(PORTD,3);
  cbi(PORTD,3);
  wait_ms(5);
  PORTD = 0x30;  //0b00110000;
  sbi(PORTD,3);
  cbi(PORTD,3);
  wait_us(100);
  PORTD = 0x30;  //0b00110000;
  sbi(PORTD,3);
  cbi(PORTD,3);
  wait_ms(5);
  
  // 4-BitModus einschalten
  PORTD=0x20;      
  // Schreibsignal
  sbi(PORTD,3);
  cbi(PORTD,3);
  wait_ms(5);
  
  // ab hier im 4-Bit-Modus
  lcd_cmd(0x28);    // Funktions-Set: 2 Zeilen, 5x7 Matrix, 4 Bit
  //lcd_off();
  lcd_cmd(0x06);    // Entry Mode
  lcd_on();
  lcd_clear();
}
//---------------------------------------------------------------------------
// Main-Funktion
//---------------------------------------------------------------------------
int main (void)
{
  wait_ms(200);
  lcd_init();
  lcd_goto(1,1);
  lcd_write("  H+");
  
  while (1) {  } // Mainloop
return 0;
}
//---------------------------------------------------------------------------

Ich hab die lcd_write für die 2. Zeile gelöscht und siehe da 2. Zeile 
wird nicht mehr angezeigt. Doch in der 1. Zeile habe ich nur Balken 
schwarze dicke fette nervige Balken...


Bin echt schon am verzweifeln.. ansich ist das ja ein tolles Anfänger 
Board und übersichtlich aber wenn man das LCD Display nich bekommt muss 
man sich sein eigenes bauen und da happerts ich hab zwar schon 5 mal neu 
verdrahtet aber geändert hat sich nichts....!
Gibts da nicht so einen Stanard Fehler?



Lukas

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat keiner eine Idee?


Lukas

Autor: Steffen O. (derelektroniker) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso verwendest du nicht irgendeine fertige LCD lib, dann musst du 
nicht alle Funktionen selbst definieren. Ich weiß nicht, ob die mit dem 
myAVR- Board funktioniert, aber vielleicht versuchst du mal die lib von 
Peter Fleury, und wenn du mit der auch Probleme hast, versuch mal die 
hier aus dem wiki.

Gruß, Steffen

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich hab auch ne andere Bibliothek probiert aber dasselbe liegts 
vielleicht an der Hardware?


Lukas

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach bitte kommt helft mir ich kack schon 2 Wochen damit rum!

Autor: Teplotaxl X. (t3plot4x1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast keinen Anspruch auf Hilfe ;)

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und warum nicht?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Du hast keinen Anspruch auf Hilfe ;)
>und warum nicht?

Weil hier keiner dazu verpflichtet ist dir zu antworten.

Fassen wir mal zusammen:

>ich hab zwar schon 5 mal neu verdrahtet aber
>geändert hat sich nichts

Wozu? Du musst nur einmal richtig anschliessen. Dann gehts auch.

>liegts vielleicht an der Hardware?

Das kann man mit 50% mit Ja beantworten.
Die restlichen 50% bedeuten Fehler in der Software.

>Gibts da nicht so einen Stanard Fehler?

Nein.

>Vorher hatte ich den Code drinnen.

Und was nimmst du jetzt als Code?

Siehst du nun warum dir keiner mehr antwortet?

Ich sags dir:
a) LCD Probleme wurden hier schon 10000000 mal durchgekaut
b) Niemand weiss ob du dein Display korrekt angeschlossen hast
c) Niemand weiss was du deinem Display schon so alles angetan hast
d) Niemand weiss ob du Kurzschlüsse oder offene Leitungen hast
e) Niemand weiss ob dein Display nicht schon Schrott ist

Was erwartest du? Ein Wunder?

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich kann ja viel dafür das das Thema LCD DISPLAY so brisant ist...

Tschuldigung dass ich gefragt habe..!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ja ich kann ja viel dafür das das Thema LCD DISPLAY so brisant ist...

Ist es nicht.

>Tschuldigung dass ich gefragt habe..!

Fragen brauchst du nicht WENN DU DAS GOTTVERDAMMTE DATENBLATT
mal lesen würdest. Du kommst damit nicht klar? Macht doch nichts.
Dann bist du halt noch nicht so weit ein LCD anzusteuern.
Als ich mit Elektronik angefangen habe gings mir genauso.
Nach ein paar Jahren Erfahrung sammeln wurde es dann immer besser.
Und heute habe ich selbst mit Grafikdisplays keine Probleme.

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha und was steht in dem sogenannten Gottverdammten Datenblatt drinnen? 
die Pinbelegung? ddie Betriebstemperatur? Glaub mir ich frage nicht 
vorher ohne alles auszuschließen und als Spass löte ich nicht alles um 
ich hab wirklich schon alles probiert darum habe ich gefragt ob 
vielleicht einer eine Idee hatt , aber naja vielleicht ist es einfache 
ein falsches Forum, dass sowiso nur mehr aus alteingesessen 
Besserwissern besteht die einfach nicht wollen das die Jugend mal was 
anderes macht als Drogen nehmen und KOMA saufen.


Basta

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aha und was steht in dem sogenannten Gottverdammten Datenblatt drinnen?

Alles was wichtig ist. Man muss es nur lesen.

>alteingesessen Besserwissern besteht

Ob du es glaubst oder nicht: Mein erstes LCD habe ich angesteuert
als es noch gar kein Internet gab. Wie hab ich das bloß geschafft?
Haufenweise Seiten auf Papier (das sind diese dünnen weissen Dinger
die man ohne Bier nicht essen kann).

Ich konnte niemanden fragen. Englisch konnte ich auch nicht besonders
gut. Aber da waren diese Bildchen. Timing Diagramme. Wie schön!
Alles so programmiert wie es in den Bildchen zu sehen war und
alles funktioniert tadelos.

Euch Jungschissen kann es einfach nicht schnell genug gehen.
Ist ja auch immer einer da der euch den Arsch abwischt
oder die Schuhe zubindet.

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger wrote:
>>Aha und was steht in dem sogenannten Gottverdammten Datenblatt drinnen?
>
> Alles was wichtig ist. Man muss es nur lesen.
>
 ach wirklich nur blöd dass ich alles durchgearbeitet hab und es 
funktioniert absolut garnichts ausser diese behinderten schwarzen 
Balken.... aber trotzdem Danke

Autor: Hoffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
falls noch wer bei diesen zickenkrieg ne antwort brauch:
habe gerade auch mein ersten LCD in betrieb genommen und hatte auch die 
dicken schwarzen Striche.
Bei mir lag es am Kontrast, konnte wenn ich schräk auf das LCD geguckt 
habe den text erkennen.
eben fix nach dem schaltplan vom AVR-GCC-Tutorial ein poti auf ein 
steckbrett verkabelt, eingeschaltet, bissel rumgedreht, und es tut nun 
einwandfrei

Autor: funky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Euch Jungschissen kann es einfach nicht schnell genug gehen.
> Ist ja auch immer einer da der euch den Arsch abwischt
> oder die Schuhe zubindet.

:D schlecht geschissen?

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lustigerweise hab ich mir das stk 500 geholt :) flux den Mega8 rein und 
programmiert dann den uC ins myAvr Board rein... neues LCD von CSD rein 
und habe dasselbe Problem. Zuerst dachte ich es läge an den JTAG-Fuses 
doch die hat mein Controller nicht einmal.

Irgendwie glaube ich ich hab in dem Code ein Initialisierungsproblem....


Lukas

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR Tutorial:

Pin #-LCD  Bezeichnung-LCD  Pin-µC
4          RS               PD4
6          E                PD5
11         DB4              PD0
12         DB5              PD1
13         DB6              PD2
14         DB7              PD3


myAvr Board:

4          RS               PD2
6          E                PD3
11         DB4              PD4
12         DB5              PD5
13         DB6              PD6
14         DB7              PD7

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wass soll das heissen?


Lukas

Autor: holger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>und wass soll das heissen?

Das es nicht egal ist welchen Code du nimmst.

Brenn mal die HEX Datei im Anhang.
Funktioniert die?

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HOLGEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEER





du bist der Beste!!!!!!!!!! es funktioniert DANKE DANKE DANKE du bist ab 
sofort mein GOTT DANKEEEEEEEEEEEEEEEEEEEEEEEE


Wenn ich jetzt noch den CODE HABEN KÖNNTE WÄRE ALLES PERFEKT....

Autor: holger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn ich jetzt noch den CODE HABEN KÖNNTE WÄRE ALLES PERFEKT....

Viel Spass mit meinem Bastelkram ;)
Ist alles andere als perfekt, aber geht meistens.

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke schön!

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich geh jetzt ins bett hab probleme dass ich den quell code builde und 
bin schon zu müde... muss morgen in die Schule

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lustigerweise mache ich heute noch mal den Controller ins myAVR Board 
rein den ich gestern noch im Stk500 umprogramieren wollte. Bin aber 
nicht mehr dazugekommen. Und siehe da es funktioniert nicht.....komisch 
ich hab drei verschiedene Controller reingemacht und immer dasselbe 
wieder die schwarzen balken....




Komisch ist das ich hab gar nichts gemacht ausser ins stk500 gesteckt

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Und siehe da es funktioniert nicht.....komisch
>ich hab drei verschiedene Controller reingemacht und immer dasselbe
>wieder die schwarzen balken....

Ist aber schon sehr merkwürdig das meine HEX Datei
nur ein einziges mal funktioniert :(

Was für ein Display hast du eigentlich?
Schon mal am Kontrastpoti gedreht? Bei einigen
LCD muß man da sehr vorsichtig dran drehen.
Oder hast du irgendwo einen Wackelkontakt in deiner
Verdrahtung? Wie sieht die eigentlich aus?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie sieht die eigentlich aus?

Kabelllänge z.B. also nicht die Pinnummern.
Die sind ja bekannt.

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ca 10cm kabeln die gehen vom Ausgang des avr boards direkt auf ein 
steckbrett wo das lcd auf einer stiftleiste drinnen steckt...


LCD verwende ich dieses http://www.csd-electronics.de/de/index.htm

naja irgendwie tuts mich wundern gestern alles pipifein gegangen dann 
wollte ich es umprogramieren und zwar einen port high schalten für die 
Hintergrundbeleuchtung und den Text ändern bin aber nicht dazugekommen 
heute mach ich den Controller von gestern rein und was ist nichts.... 
ich hab nichtmal das Board berührt .....

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10cm ist auf jeden Fall nicht zu lang.
Steckbretter sind leider manchmal etwas eigenwillig
weil die Kontaktklammern oft recht schnell auslatschen.
Das ist schon mal eine Fehlerquelle.

>LCD verwende ich dieses

Da gibt es sehr viele LCDs ;)
Eine genaue Bezeichnung oder Bestellnummer
wäre sehr hilfreich.

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so das funktioniert nicht hier die Daten
Artikelpreis: 14.95 EUR
Mengenrabatt!

LCD-Punkt-Matrix-Modul

Features:

- weiße LED Hintergrundbeleuchtung
- LCD-STN-Anzeige blau negativ
- Controller KS0070B
- Interface für 4 bit o. 8 bit Datenbus
- ( LxBxH): 80x36x10,5mm
- CGRAM (64 x 8 Bit)



Kenndaten

Spannung.......................................2.7 bis 5.5V
Strom.....................................................0,50mA
Strom (Beleuchtung)...........................55mA (5V)
Character-Size................................2,95x5,55mm
Temp.-Bereich.................................. -20..+70°C





noch zu erwähnen wäre dass es dem LCD egal ist ob  ein Controller 
drinnen ist oder nicht beidemale die selben Sympthome.

Steckbrett ist neu hab ich gestern bekommen ebenso LCD

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also gerade getestet es ist egal ob irgend was angesteckt ist nur darf 
ich die Leitungen zu 5V UND 0V nicht abklemmen... ich probiere jetz 
nochmals dass ich den controller aufs steckbrett machen und dann 
verkabel.

Brauch ich den uC eh nur an 5v und GND hängen oder brauche ich einen 
Stützkondensator? Netzgerät ist eins dass wir in der Schule gebaut 
haben.




Lukas

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>also gerade getestet es ist egal ob irgend was angesteckt ist nur darf
>ich die Leitungen zu 5V UND 0V nicht abklemmen... ich probiere jetz
>nochmals dass ich den controller aufs steckbrett machen und dann
>verkabel.

Nein, das tust du nicht!
Gestern hat es doch geklappt. Was stand eigentlich auf dem Display?
Geh systematisch vor. Controller auf das myavr Board.
Die Verdrahtung bleibt so wie sie ist.

Ich hab dir eine Datei für Ks0066 geschickt.
Das kann ich dir auf KS0070 ändern.
Wieviel Zeilen Spalten hat das Display?
Ich schick dir dann eine neue HEX Datei zum probieren.

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oki  donki dan mach ich es wieder rückgängig war dasselbe....


ich hau aber auch für das neue hex file einen anderen atmega hab ja 10 
stück davon :D


16x2



Danke Nochmals dass du dir so viel Zeit nimmst !!!

Autor: holger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, hier für KS0070.

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es ist wieder dass gleiche.... aber warum funktionierts gestern und 
heute nicht????

achja zum programmen verwende ich immer den grünen sockel beim stk 
500...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>es ist wieder dass gleiche.... aber warum funktionierts gestern und
>heute nicht????

Tut mir leid, das kann ich dir auch nicht sagen.
Ab hier hilft nur noch ein Speicherosci.
Läuft der ATMega auch? Kommen die Signale am LCD an?
Taktquelle nicht falsch gefused? Ich weiss es nicht :(

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich hab an den fuses nichts gemacht.... ich denke der Controller 
läuft nicht richtig.... denn am steckbrett hat es auch nicht 
funktioniert wie kann ich den testen ob er "läuft"????

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich seh grad das bei external crystal ein häkchen ist es steh auch noch 
dort 16k ich denke das ist die frequen.... also 16 hz oder?

ich hab am avr board aber nur einen 3.6964 Quarz !

Soll ich den interne aktivieren???



Lukas

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keiner ne idee??

Autor: Lukas Migi (luke_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mittlerweile hab ich mich wieder mal dran gesetzt und probiert das LCD 
zum laufen zu bringen. Ergebnis wie oben funktioniert nicht.
Ich hab jetzt den gesammten Aufbau nochmals kontrolliert und keinen 
Fehler entdeckt. Mittlerweile bin ich echt schon am verzweifeln , denn 
wer hätte gedacht dass ein LCD anzusteuern so schwer sein kann. Naja ich 
geb trotzdem nicht auf.
Deshalb hab ich 2 Fragen.
Gibts es in AVR Studio irgendwelche Einstellungen die Verhindern dass 
mein Controller das tut was er soll? an den Fuses kanns nicht liegen an 
denen hab ich nichts gedreht.

Ist es vielleicht besser alles nochmal neu nach einer anderen Quelle z.B 
uC-Wiki aufzubauen?



Vielen Dank für die Geduld,Lukas

Autor: GiWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tschuldigung wenn ich mich einmische...

Danke Holger für den obigen Code. Nach sowas hab ich wochenlang gesucht.
Aber alles was ich gefunden hatte waren entweder schnipsel, welche für n 
anfänger nicht wirklich geeignet sind oder irgendwelche libs die bei mir 
einfach nicht getan haben.

danke dabke danke.

GiWin

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.