Forum: Mikrocontroller und Digitale Elektronik AVR Studio 4.0


von Dieter (Gast)


Lesenswert?

Guten Abend,
ich wollte gerade mit dem Simulator, welcher beim AVR Studio 4.0 
integriert ist, mein C-Programm zur Ansteuerung einer LCD Anzeige 
simulieren. Leider komme ich mit dem Simulator nur bis zur 
Initialisierung der LCD Anzeige.

// LCD module initialization
lcd_init(32);

Wenn der oben angeführte Befehl abgearbeitet werden soll, wird der gelbe 
Pfeil des Simulators unsichtbar und erscheint nicht wieder.
Kann mir bitte irgendwer sagen was ich bei meiner Vorgangsweise falsch 
mache? Oder braucht der Simulator irgendwelche Bibliotheken um eine LCD 
Anzeige simulieren zu können?
Vielen Dank im Voraus und liebe Grüße
Dieter

von Johannes M. (johnny-m)


Lesenswert?

Dieter wrote:
> Kann mir bitte irgendwer sagen was ich bei meiner Vorgangsweise falsch
> mache?
Vielleicht, dass Du eine veraltete Version vom AVRStudio nutzt?

Dein größter Fehler ist aber vermutlich der, dass Du einfach so 
voraussetzt, dass in diesem Forum Hellseher unterwegs sind, die aus 
einer einzigen Codezeile, die nur aus dem Aufruf einer nicht näher 
beschriebenen Funktion besteht, den Rest Deines Codes herleiten 
können...

von Justus S. (jussa)


Lesenswert?

Dieter wrote:
> Guten Abend,
> ich wollte gerade mit dem Simulator, welcher beim AVR Studio 4.0
> integriert ist, mein C-Programm zur Ansteuerung einer LCD Anzeige
> simulieren. Leider komme ich mit dem Simulator nur bis zur
> Initialisierung der LCD Anzeige.
>
> // LCD module initialization
> lcd_init(32);
>

wird da vielleicht auf eine Rückmeldung vom LCD gewartet?

von Dieter (Gast)


Lesenswert?

Ich verwende das AVR Studio 4.14.
Nachfolgend findet ihr den C-Code für die LCD Anzeige.


#include <mega32.h>
#include <stdio.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>


char buffer[15];


void main(void)
{

// LCD module initialization
lcd_init(32);



lcd_clear();
lcd_gotoxy(0,0);
sprintf(buffer,"Hello World");
lcd_puts(buffer);


while(1);


}


Wie kann ich herausfinden ob der Simulator des AVR Studios eine 
Rückmeldung von der LCD Anzeige benötigt?
Danke nochmals,
Dieter

von Justus S. (jussa)


Lesenswert?

Dieter wrote:
> Ich verwende das AVR Studio 4.14.
> Nachfolgend findet ihr den C-Code für die LCD Anzeige.
>

Nein, das Wichtigste fehlt, wie die LCD-Funktionen aussehen...


> Wie kann ich herausfinden ob der Simulator des AVR Studios eine
> Rückmeldung von der LCD Anzeige benötigt?

Dokumentation/Quellcode zur lcd-library lesen...

von Johannes M. (johnny-m)


Lesenswert?

Dieter wrote:
> Ich verwende das AVR Studio 4.14.
Oh, da hast Du aber schnell geupdatet...

> #include <mega32.h>
Was soll mega32.h für ein Header sein? Zur AVR-libc gehört der nicht. 
Und Device-spezifische Header werden nicht direkt eingebunden...

> Wie kann ich herausfinden ob der Simulator des AVR Studios eine
> Rückmeldung von der LCD Anzeige benötigt?
Indem Du schaust, was die LCD-Funktionen überhaupt machen.

Du solltest aber vorher vielleicht mal ein paar Blicke ins 
AVR-GCC-Tutorial werfen...

von Stefan E. (sternst)


Lesenswert?

Johannes M. wrote:

> Was soll mega32.h für ein Header sein? Zur AVR-libc gehört der nicht.
> Und Device-spezifische Header werden nicht direkt eingebunden...
> ...
> Du solltest aber vorher vielleicht mal ein paar Blicke ins
> AVR-GCC-Tutorial werfen...

Ich glaube kaum, dass er GCC und AVR-Libc verwendet.

von Justus S. (jussa)


Lesenswert?

Stefan Ernst wrote:

>
> Ich glaube kaum, dass er GCC und AVR-Libc verwendet.

wenn ich mal raten sollte: die lcd-lib von Fleury...

von Johannes M. (johnny-m)


Lesenswert?

Stefan Ernst wrote:
> Ich glaube kaum, dass er GCC und AVR-Libc verwendet.
Seit wann lassen sich denn andere Compiler als der AVR-GCC zusammen mit 
AVRStudio verwenden? Oder meinst Du, er hat es tatsächlich geschafft, 
die Debug-Informationen eines anderen Compilers mit AVRStudio zu 
verknüpfen?

In dem Falle hätte er aber vielleicht auch mal erzählen sollen, mit 
welchem Compiler er denn arbeitet... Es könnte ja eventuell 
CodeVision sein, der ja afair zumindest in Ermangelung eines eigenen 
Simulators den vom ARStudio benutzt. Wie gesagt: könnte...

Justus Skorps wrote:
> wenn ich mal raten sollte: die lcd-lib von Fleury...
Tja, die Vermutung liegt natürlich nahe, aber nichtsdestotrotz braucht 
es auch für die lib einen Compiler mit einer weiteren lib, in der der 
ganze Rest steht...

von Stefan E. (sternst)


Lesenswert?

Johannes M. wrote:

> Stefan Ernst wrote:
>> Ich glaube kaum, dass er GCC und AVR-Libc verwendet.
> Seit wann lassen sich denn andere Compiler als der AVR-GCC zusammen mit
> AVRStudio verwenden?

Ich weiß nicht genau seit wann, aber jedenfalls länger, als zusammen mit 
dem AVR-GCC.

Außerdem: sieht das hier für dich wie GCC aus?
1
#asm
2
   .equ __lcd_port=0x15 ;PORTC
3
#endasm

von Dieter (Gast)


Lesenswert?

Hallo
ich verwende den Code Vision Compiler. Die Bibliothek "mega32.h" 
beinhaltet die spezifischen Controllerfunktionen.
Wie ich mein Problem lösen kann weiß ich leider noch immer nicht, kann 
mir da wer helfen?
lg Dieter

von Justus S. (jussa)


Lesenswert?

Dieter wrote:
> Hallo
> ich verwende den Code Vision Compiler. Die Bibliothek "mega32.h"
> beinhaltet die spezifischen Controllerfunktionen.
> Wie ich mein Problem lösen kann weiß ich leider noch immer nicht, kann
> mir da wer helfen?
> lg Dieter

wie ich schon weiter oben geschrieben habe: Was ist den mit den 
LCD-Funktionen? Fallen die vom Himmel oder was?

Und noch was allgemein zur Simulation mit AVR Studio, was dir wohl nicht 
klar ist: Damit wird afaik nur der µC simuliert, alle weitere Peripherie 
wie LCDs, LEDs, Taster, etc natürlich nicht...wann immer eine 
Rückmeldung erfolgen muss, irgendeine Art von Input, muss das der User 
per Hand machen...und dazu muss man natürlich wissen, was man gerade 
macht...

von Justus S. (jussa)


Lesenswert?

Nachtrag: Lies dir mal in Tutorial den Abschnitt über LCDs 
durch...fertige LIBs nutzen ist ja angenehm, aber man sollte schon etwa 
wissen, was dahinter steckt...und vor allem, wie die "Hardware", die man 
benutzen will, überhaupt angeschlossen werden muss...

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
Noch kein Account? Hier anmelden.