mikrocontroller.net

Forum: Compiler & IDEs atmega8 und lcd


Autor: josch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

bin mal wieder etwas ratlos. Ich möchte auf einem Standard-lcd (2*16)
ein paar Zeichen ausgeben. Nun hat das alles schon prima auf einem
at90s8515 funktioniert. Jetzt soll das aber auf einem Atmega8 auch
laufen - tuts aber nicht. Anschlüsse sind gleich geblieben, alles
steckt am stk500 (ich denke an der Hardware liegt das nicht. Einzig der
Port wechselte von PORTA nach PORTB - das hab ich in der lcd.h aber auch
angepasst.

Der Code ist:

#include <stdlib.h>
#include <avr/io.h>
#include "lcd.h"
int main(void)
{
lcd_init(LCD_DISP_ON);
lcd_clrscr();
    for (;;) {
        lcd_puts("Hallo Welt :)\n");
    }
}


Hab ich was übersehen? Hat jemand eine Idee, woran das liegen könnte.

Autor: Wolfgang Niegsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Josch,
Der Mega hat ein JTAG interface. Bitte überprüfe doch einmal, ob die
von Dir verwendeten Pins auch das JTAG angschlossen wird. Wenn ja, dann
mittels fuse JTAG disablen.
Mfg
Wolfgang

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, der ATmega8 hat kein JTAG, das gibt's erst bei Chips >= 16 KB ROM.

Autor: josch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, kein JTAG - hab das auch gerade in Erfahrung gebracht. Aber trotzdem
gut zu wissen, dass sowas Problemchen bereiten kann.

Tja, jetzt hab ich meinen Reservecontroller mal ins Board gesteckt -
der sagt aber auch nix. Dann wirds am Controller auch nicht liegen :(
So langsam fällt mir nichts mehr ein.

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht denn die lcd.h bzw (wenn es die überhaupt gibt) die lcd.c
aus?
Ich habe mal eine LCD-Routine gesehen, da wurde - trotz define - im
source an manchen stellen ein "fest verdrahteter" Port verwendet...

Autor: josch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, es sind die Dateien von Peter Fleurys Seite.
Ich hab halt nur den LCD Port in PORTB umdefiniert.

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Häng die sourcen mal bitte an...

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

Bewertung
0 lesenswert
nicht lesenswert
Hab alles drangehängt

Danke schonmal für Eure Mühe

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du evtl. die Geschwindigkeit des Prozessors verändert?
Vielleicht liegts am timing, konnte jedenfalls das Phänomen mit dem
falschen Port nicht finden :-)

Autor: josch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR Studio sagt mir, dass das Ding mit 3,69 Mhz läuft.
Daran hab ich aber auch nichts geschraubt.
Das ist schon alles seltsam :(

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe meine LCD lib erfolgreich mit einem ATmega getestet. Mit meiner
neuesten LCD-Lib Version kamm man sogar die einzelnen Pins individuell
definieren.

Die angefügte Lib ist nicht meine neueste Version.

Autor: josch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also an der lib liegts auch nicht.
Der Fehler liegt bei mir. Ich hab eben mal einen Mega16 reingesteckt
und da lief es - allerdings auf PORTA.
Irgendwie kompiliere ich mit ner falschen lcd.h
Ich bin ganz nah dran... mal wieder was zu verstehen

Danke an alle - ich hoffe, ich falle Euch nicht zu sehr auf den Wecker

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du dein Makefile verändert? Richtigen Mikrocontroller eingetragen?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter
Habe deine lib auf ATMega8, ATMega16 und ATMega32 am laufen, gab nie
Probleme und funktioniert prima. Selbst das Timing musste ich nie
verändern, trotz Quarzfrequenzen von 4, 8 und 16MHz. Ich verwende 16*2
bzw. 16*4 Displays von Conrad.

Gruss, Alex

Autor: Wolfgang Niegsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,Josch
OK, kein JTAG, aber der Port B hat alternate Funktion:
PB7
XTAL2 (Chip Clock Oscillator pin 2)
TOSC2 (Timer Oscillator pin 2)
PB6
XTAL1 (Chip Clock Oscillator pin 1 or External clock input)
TOSC1 (Timer Oscillator pin 1)

Wie diese alternate funktion zu oder abgeschaltet wird weiß ich auch
nicht, aber im Datenblatt steht es bestimmt.

Mfg.
Wolfgang

Autor: josch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich weiss es zwar noch nicht ganz genau (war am Wochenende
anderweitig unterwegs) aber ich gehe zu 99% davon aus, dass ich einen
Fehler im Makefile habe.

Ich hoffe, dass ich heute nachmittag noch ein bischen Zeit für die
Problematik finde - ich schreib dann zur allgemeinen Unterhaltung hier
rein, welchem Unfug ich da wieder aufgesessen bin.

viele Grüsse
Josch

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

Bewertung
0 lesenswert
nicht lesenswert
Ich nochmal

Also so langsam bin ich mit meinem (begrenzten) Latein wirklich am
Ende.
Ich finde den Fehler nicht - vermute ihn aber im Makefile.
Ich hab jetzt einen Atmega16 im stk500 und möchte über PORTB ans lcd
ausgeben.
Ich hab das so kompiliert, wie es im Anhang ist und die Zeile wird an
PORTA rausgegeben.

Schlagt mich tot aber verratet mir vorher, woran es gelegen hat

viele Grüsse
Josch (der gleich in den Controller beisst)

Autor: josch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arrgh - Kommando zurück
jetzt wars der JTAG - ist doch jetzt der Mega16

bitte nicht mehr totschlagen :)
jubel

Autor: Christian Löpelt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo josch....

ich habe jetzt auch ein STK 500 und mit einem AT90S8515 und würde gerne
auch ein LCD ansteuern...leider habe ich noch nicht so viel Ahnung
davon...vieleicht kannst du mir etwas helfen...mit Anschlussbelegung
und Programmierung- evtl. ein vorhandenes File...
Danke im Voraus..bis demnächst...

Informationen bitte an cloepelt@web.de senden...

Danke

Autor: josch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich kann da nur wärmstens die Seite von Peter Fleury empfehlen.

http://homepage.sunrise.ch/mysunrise/pfleury/

Da steht wirklich alles, was man zum Aufbau braucht und wissen muss.
Beschaltung und die LCD Bibliothek mit praktischem Beispielprogramm
(für die C Programmierer). Ich hab das wirklich nur zusammengesteckt,
das Programm geladen und alles funktionierte.
Jetzt, wo ich mein eigenes Projekt vorantreibe, ist die Fehlerrate
natürlich deutlich höher (wie man sieht).

Im Tutorial hier stehen auch noch ein paar praktische Sachen - im
Grunde ist es gar nicht so schwer.

viele grüse josch

Autor: dietmar Steiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Aufpassen !!!!!!

Ich bin auch drüber gestolpert:

Beim stk500 mit atmega8 im "Green Sockel" sind pb.6 und pb.7 nicht
mit den Port-Sockeln verbunden (Oszillatorschaltng !!). Nur mit EXPAND
1 via xt2 und xt1.

Das ist der ganze Trick !!!!

Verwende also für dein LCD nicht diese Portpins ... ;-)

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dietmar
hey, ich bin Dir zu ewigen Dank verpflichtet. Darauf, das die Ausgänge
nicht mit den Ports verbunden sind wäre ich so schnell glaub ich nicht
gekommen

DANKE

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

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe nun das selbe problem und hoffe ihr könnt mir behilflich sein.
Das Display ist folgendermaßen angeschlossen:
(nur Pins zum controller, versorgung ist auch dran und RW ist auf GND)
DB 4  ->  PB0
DB 5  ->  PB1
DB 6  ->  PB2
DB 7  ->  PB3
E     ->  PB5
RS    ->  PB4


An PB 6/7 ist ein 16MHz Quarz angeschlossen.
Das Display muss unbedint an diesen Port, da PortC als ADC verwendet 
wird und an PORTD benötige ich die INT - Eingänge.
Um die Fehlersuche zu vereinfachen habe ich den Code auf ein minimales 
reduziert (hoffe ich hab nichts vergessen).
thx schon mal an alle die mir helfen, helfen wollen oder es zumindest 
versuchen ^^

Mfg, Pat

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sag mal leidest Du an Nekrophilie oder warum gräbst Du einen mehr als 5 
Jahre (in Worten: FÜNF Jahre) alten Thread wieder aus?
Und (farben-)blind scheinst Du auch noch zu sein, sonst hättest Du 
wenigstens den extra rot eingefärbten Hinweis weiter unten gesehen und 
Dich gefragt, warum der wohl da steht.

Autor: Pat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab den schon gesehen aber ich hatte nich viel zeit, deshalb dacht ich 
versuchen kann mans ja mal ^^

naja nu hab ich zeit nen neuen auf zu machen oder zumindest nen 
aktuelleren zu suchen ^^

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.