Forum: Compiler & IDEs Verschiedene Fragen zu myAVR


von Andreas F. (hyp3r)


Lesenswert?

Hallo Leute,

Ich habe den Thread unter GCC gepostet weil das ganze eig. mit 
Programmierung zu tun hat ich hoffe das passt so :S

ich habe mir vor kurzem diese Produkte gekauft:

http://shop.myavr.de/best%C3%BCckte%20Boards/myEthernet.htm?sp=article.sp.php&artID=100065
http://shop.myavr.de/best%C3%BCckte%20Boards/myAVR%20Board%20MK2%20USB,%20best%C3%BCckt.htm?sp=article.sp.php&artID=40
http://shop.myavr.de/best%C3%BCckte%20Boards/myAVR%20LCD%20Add-On.htm?sp=article.sp.php&artID=15
http://shop.myavr.de/Zubeh%C3%B6r/PowerKit%20V5.htm?sp=article.sp.php&artID=100044
http://shop.myavr.de/best%C3%BCckte%20Boards/myTWI%20Add-On%20Temperatursensor.htm?sp=article.sp.php&artID=71
http://shop.myavr.de/best%C3%BCckte%20Boards/myDigitalOut.htm?sp=article.sp.php&artID=59

Eigentlich geht es mir um das Hauptboard "myAVR Board MK2 USB, 
bestückt".

Die erste Frage die ich habe:

Welche Entwicklungsumgebung könnt ihr mir empfehlen?
(Ich programmier eigentlich am liebsten in C, und kann diese Sprache auf 
x86 Basis auch, und auch von C-Control)

- SiSy
- AVR-Studio
- myAVR Workpad PLUS

Mir persönlich hat das AVR-Studio eig. am besten gefallen. Ich hab 
irgendeine Version im Internet heruntergeladen. Keine Ahnung gehabt sie 
zu konfigurieren. Aber die Menüführung und das ganze Design hat mir sehr 
gut gefallen. (Besonders der Unterpunkt debuggen :P)

SiSy hab ich von einem Kumpel als Vollversion bekommen aber gar nicht 
zufrieden. Bzw. nicht durchgeblickt

myAVR Workpad PLUS geht auch aber leider nur die DEMO Version bisher in 
der Hand gehabt. Sprich 30 Minuten Max arbeiten können. Keine fertigen 
Librarys zur Verfügung (z.B. LCD/TWI). Die Entwicklungsumgebung war okay 
und übersichtlich aber alles sehr spartanisch.

Ich stehe in dem Fall vor der Frage also das "myAVR Workpad PLUS" zu 
kaufen oder AVR-Studio richtig zu konfigurieren.

Was würdet ihr vorschlagen?

Dann nochmal eine Frage:

Ist es überhaupt möglich die ganze Sache debuggen zu können wie man es 
in C-Control Pro gewohnt ist? (Breakpoints, Variablenabfrage)

Ziel soll sein am Ende irgendwann die Relais, das LCD und die 
Temperaturen vom TWI (I²C-Chip) auslesen zu können. Einfache Ports kann 
ich schon schalten aber die LCD/TWI Ansteuerung komplett neu zu 
programmieren ist mir irgendwie zu aufwendig.

Ich freu mich auf eure antworten! Weiterhin muss ich mich entschuldigen 
falls es solche Threads schon gegeben hat.

mfg
HyP3r

von Karl H. (kbuchegg)


Lesenswert?

Die meisten hier benutzen als C-Entwicklungsumgebung entweder WinAVR so 
wie es nach dem Download daherkommt, oder aber WinAVR in Verbindung mit 
dem AVR-Studio.

> oder AVR-Studio richtig zu konfigurieren

Normalerweise braucht man da nicht viel konfigurieren. AVR-Studio 
installieren, WinAVR installieren. Fertig.

Der interessante Punkt ist immer: Mit welchem Programmer kriege ich mein 
Programm auf den µC und kann ich den Programmer von AVR-Studio aus 
benutzen, ihn irgendwie einbinden oder bleibt muss dieser Schritt über 
ein externes Programm gemacht werden.

> Ist es überhaupt möglich die ganze Sache debuggen zu können
> wie man es in C-Control Pro gewohnt ist? (Breakpoints,
> Variablenabfrage)

Ja klar. AVR-Studio kommt mit einem schönen Simulator daher in den sich 
der C-Debugger wunderbar integriert. Na ja, fast. Der Simulator hat so 
seine Bugs, besonders wenn es um die komplexeren Timer-Geschichten geht. 
Aber im Großen und Ganzen funktioniert das eigentlich ganz gut.

von ... .. (docean) Benutzerseite


Lesenswert?

der mitgelierte Programmierer kann nicht debuggen, nur programmieren...

von Andreas F. (hyp3r)


Lesenswert?

Okay!

Also ich habe mir vom AVR-Studio gestern abend in verbindung mit WinAVR 
installiert. Die Programme zu schreiben ist eig. gar kein problem. Sie 
wiederum auf den Chip zu übertragen auch nicht.

Aber im prinzip kann ich jetzt nur so "grund" sachen machen.

Sprich vllt mal einen Digitalen Port als Ausgang schalten und ihn 
anmachen.

Aber wenn ich dann mal mein LCD ansteuern will wirds eng. Dafür wären 
fertig Librarys schon schöner.

Deshalb kauf ich mir mal "myAVR Workpad PLUS" kostet ja nicht so viel. 
Aber das teil hat halt wiederum keinen Debugger :(.

Auch wenn der Debugger vom AVR-Studio auch nur ein Simulator ist :P.

mfg
HyP3r

von ... .. (docean) Benutzerseite


Lesenswert?


von Andreas F. (hyp3r)


Lesenswert?

diese LCD Library hab ich auch schon in der Hand gehabt konnt aber 
nichts damit anfangen :S

Ich habe den Header abgeändert auf die Entsprechenden PIN (nach doku des 
LCD) und es ging nicht :(.

Ich werde gleich noch mal hier den Header posten vllt ist irgendwo ein 
Leichtsinns fehler :)

von Karl H. (kbuchegg)


Lesenswert?

Andreas Fendt schrieb:
> diese LCD Library hab ich auch schon in der Hand gehabt konnt aber
> nichts damit anfangen :S
>
> Ich habe den Header abgeändert auf die Entsprechenden PIN (nach doku des
> LCD) und es ging nicht :(.

Du sollst das nicht nach Doku des LCD abändern, sondern danach, wie du 
das LCD mit deinem AVR verbunden hast. Das und nur das, ist das 
entscheidende Kriterium.
Und natürlich so Nebensächlichkeiten wie dass die Fleury Lib auch die 
richtige Taktfrequenz des Prozessors mitgeteilt bekommt.

Bisher hat diese Lib immer noch auf Anhieb funktioniert. Und wenn sie 
nicht funktioniert hat, dann hat sich das immer als Konfigurationsfehler 
bzw. als Verdrahtungsfehler der Hardware herausgestellt.

von HyP3r (Gast)


Lesenswert?

Header LCD: http://pastebin.com/f34588eb5
Programm LCD: http://pastebin.com/f4a2f590c
Programm: http://pastebin.com/f4f2487f0

Bei dem myAVR System ist man mit der verdrahtung nicht flexibel...

Durch das stecksystem passt das dann schon wieder was in der Doku des 
LCD steht :).
1
#define LCD_PORT         PORTD        /**< port for the LCD lines   */
2
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
3
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
4
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
5
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
6
#define LCD_DATA0_PIN    4            /**< pin for 4bit data bit 0  */
7
#define LCD_DATA1_PIN    5            /**< pin for 4bit data bit 1  */
8
#define LCD_DATA2_PIN    6            /**< pin for 4bit data bit 2  */
9
#define LCD_DATA3_PIN    7            /**< pin for 4bit data bit 3  */
10
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
11
#define LCD_RS_PIN       2            /**< pin  for RS line         */
12
#define LCD_RW_PORT      PORTB        /**< port for RW line         */
13
#define LCD_RW_PIN       0            /**< pin  for RW line         */
14
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
15
#define LCD_E_PIN        3            /**< pin  for Enable line     */

http://www.myavr.info/download/produkte/lcd/techb_lcd_de_fr.pdf SEITE 7


In der Oben gepostetn Einstellung funktioniert's nicht!

mfg
HyP3r

von Karl H. (kbuchegg)


Lesenswert?

HyP3r schrieb:

> In der Oben gepostetn Einstellung funktioniert's nicht!

#define LCD_RW_PORT      PORTB        /**< port for RW line         */
#define LCD_RW_PIN       0            /**< pin  for RW line         */

Warum ist R/W an einem anderen Port?

Die Fleury Lib will R/W verdrahtet haben. Ohne gehts nicht (man könnte 
die Abfrage des Busy Flags mit einer Wartezeit simulieren)

von Andreas F. (hyp3r)


Lesenswert?

schau in die PDF! R/W ist auf PortB :)

von HyP3r (Gast)


Lesenswert?

ahhhh jetzt geht's. Ich hab auf dem LCD Board R/W ausgejumpert und dann 
is es nicht gegangen weil er ewig auf R/W gewartet hat...

blöd is jetzt nur das PortB auch noch einen Pin weniger zur verfügung 
hat :(.

mfg
HyP3r

von Peter D. (peda)


Lesenswert?

Andre
as Fendt schrieb:
> diese LCD Library hab ich auch schon in der Hand gehabt konnt aber
> nichts damit anfangen :S
>
> Ich habe den Header abgeändert auf die Entsprechenden PIN (nach doku des
> LCD) und es ging nicht :(.

Ja, die meisten LCD-LIBs sind recht weitschweifig.
Viele Funktionen werden aber garnicht benötigt.
Z.B. ein "Clear Display" wirkt unprofessionell, da das Display dann 
flackert, bis der neue Text dasteht. Besser einfach den alten Text mit 
dem neuen überschreiben.


Eine einfache und schön schlanke Lib:

http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip


Peter

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Help! Ich bin zu blöd, um den Thread zum Attachment lcd_drv.zip zu 
finden. Kann mir jemand aushelfen, Peter?

von Andreas F. (hyp3r)


Lesenswert?

> Ja, die meisten LCD-LIBs sind recht weitschweifig.
> Viele Funktionen werden aber garnicht benötigt.
> Z.B. ein "Clear Display" wirkt unprofessionell, da das Display dann
> flackert, bis der neue Text dasteht. Besser einfach den alten Text mit
> dem neuen überschreiben.
>
>
> Eine einfache und schön schlanke Lib:
>
> http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip
>
>
> Peter

Das mit dem überschreiben mach ich auch immer...

Deine Library sieht auch gut aus aber igendwie auch umständlich. Drei 
Header dateien. Aber das werde ich zusammen fürhen :). Außerdem kannst 
du mit dieser klasse keine Integer direkt schreiben.

mfg
HyP3r

von Karl H. (kbuchegg)


Lesenswert?

Andreas Fendt schrieb:

> Das mit dem überschreiben mach ich auch immer...

Das machen eigentlich alle. Für vernünftiges Arbeiten geht es nicht 
anders.

Trotzdem ist eine Clear-Funktion kein Luxus.
Wer ein Menüsystem schreibt, das aus mehreren Anzeigescreens besteht, 
benötigt so eine Funktion.

von Peter D. (peda)


Lesenswert?

Stefan B. schrieb:
> Help! Ich bin zu blöd, um den Thread zum Attachment lcd_drv.zip zu
> finden. Kann mir jemand aushelfen, Peter?

Beitrag "Re: LCD nicht nur für einen Port in C"


Peter

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Danke!

von Peter D. (peda)


Lesenswert?

Andreas Fendt schrieb:
> Deine Library sieht auch gut aus aber igendwie auch umständlich. Drei
> Header dateien. Aber das werde ich zusammen fürhen :). Außerdem kannst
> du mit dieser klasse keine Integer direkt schreiben.

Beitrag "Formatierte Zahlenausgabe in C"


Ich programmiere gerne nach der Methode "teile und herrsche".
D.h. jede Aufgabe kriegt ihre eigene Funktion.
Z.B. kann die Zahlenausgabe ja auch auf die UART erfolgen.


Peter

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.