hi!
ich hoffe es wird nicht zum alltag dass ich jeden tag ein neues problem habe und damit nicht ohne hilfe zurechtkomme
ansonsten bitte ich um nachsicht, ich bin ja noch immer anfänger..
ich wollte ja mit meinem nun endlich funktionierenden RN-Control als erstes sachen auf einem lcd ausgeben lassen..dafür hatte ich bei Reichelt den hier mitbestellt: http://www.reichelt.de/?;ACTION=3;LA...f2e3ea1095452b
das scheint ein displaytech 162c zu sein, hier das datenblatt dazu: http://www.displaytech.com.hk/pdf/ch...series-v11.PDF
anschliessen wollte ich das an den port b vom atmega32, und zwar nach dem Wiki im rn, mit der 4 bit anbindung und der lib von peter fleury..das scheint ja eigentlich sehr einfach zu sein, ich hab die lcd.h auf port b geändert und die rncontrol.c sieht bei mir dann ungefähr so aus:
Code:
#include <stdlib.h>
#include <avr/io.h>
#include <rncontrol.h>
#include <lcd.h>
#include <lcd.c>
int main(void) {
DDRA |= 0x00; //00000000 -> alle Analogports als Eingänge
DDRB |= 0xFF; // Ausgaenge fuer den LCD
DDRC |= 0xFF; //11111111 -> PORTC.6 und PORTC.7 sind Kanäle des linken Motors, Rest sind LEDs für Lauflicht
DDRD |= 0xB0; //10110000 -> PORTD.4 ist PWM-Kanal des linken Motors, PORTD.5 des rechten
//LED und SPEAKER aus
setportcon(0); setportcon(1); setportcon(2); setportcon(3); setportcon(4); setportcon(5); setportcon(6); setportcon(7);
setportdoff(7); //Speaker aus
lcd_init(LCD_DISP_ON);
lcd_clrscr();
lcd_puts("Hello world.");
//Beweis dass der Controller nicht abgestuerzt ist
sound(6, 270);
sound(7, 270);
sound(8, 270);
while(1);
return 0;
}
(ich hoffe ich hab da drin nix vergessen)...
jedenfalls wenn ich das programm aufspiele, läuft es nicht. es wird nur 1 zeile des displays dunkel, die 2. bleibt hell (dass sie dunkel wird hat was mit dem kontrast zu tun, jedenfalls sollten beide dunkel werden...) und der controller stürzt ab. heißt er geht im code nicht weiter..laut forensuche ist das ein anzeichen dafür dass die initialisierung fehlgeschlagen ist. es gibt ungefähr 1000 beiträge zu dem thema, aber eine lösung habe ich dort nirgens gefunden. ich weiß nich ob es von beduetung is, aber wenn ich das lcd im port eingesteckt lasse dann kann ich das programm manchmal nich aufspielen, ich schätze das liegt daran dass der ISP auf dem gleichen port läuft..ich stecke das ISP kabel natürlich aus wenn ich das programm teste..
jedenfalls habe ich die verbindungen alle mehrmals gecheckt, ich kann natürlich immernoch nich ausschließen dass irgendwas falsch angelötet ist. nur ich hab in der forensuche sehr viele beiträge mit genau dem gleichen problem gefunden, also scheint es doch etwas allgemeines zu sein (?)
also als mögliche ursachen fallen mir ein:
- lcd falsch angeschlossen (eher unwahrscheinlich)
- lib falsch eingebunden (da is aber sehr wenig zum falsch machen)
- code falsch (joa das könnte schon sein)
- lcd hat einen anderen controller und geht deswegen nicht (was ich dann mache, da bin ich dann überfragt..)
bitte um eure vorschläge..
Lesezeichen