Forum: Mikrocontroller und Digitale Elektronik lcd.c - Testprogramm - Wie kompiliere ich das richtig?


von Karl T. (don_karlo)


Angehängte Dateien:

Lesenswert?

Das soll ein Testprogramm für ein STK 500 mit angeschlossenem LCD an 
Port C
darstellen.Nur c ist mir komplett fremd.Kann mir jemand ein hex 
erstellen?

mfg Karl

von deren Sprachen, ASCII-Zeich (Gast)


Lesenswert?

Lerne fischen!

von Karl T. (don_karlo)


Lesenswert?

... auf blöde Kommentare steh ich ...
und dann nicht mal registrieren,und als Gast rummotzen !
mfg Karl

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Karl Tomacek schrieb:
> ... auf blöde Kommentare steh ich ...
> und dann nicht mal registrieren,und als Gast rummotzen !

Das war weder ein blöder Kommentar noch Rumgemotze, sondern bezog sich 
auf das Sprichwort:

"Wer einem Manne einen Fisch schenkt, gibt ihm für einen Tag zu essen. 
Wer ihn das Fischen lehrt, gibt ihm ein Leben lang zu essen."

Was bringt es, Dir einen C-Quelltext in eine Hex-Datei zu verwandeln - 
zudem das nur ein Testprogramm sein soll? Wenn Du nun das Testprogramm 
ändern willst, soll das dann wieder ein anderer für Dich übersetzen?

So kommst Du nicht weiter.

von Karl T. (don_karlo)


Lesenswert?

Ich kann das File nicht übersetzen ! Es soll nur ein Test für das LCD 
sein,ob es in Ordnung ist.

von Cyblord -. (cyblord)


Lesenswert?

Karl Tomacek schrieb:
> Ich kann das File nicht übersetzen ! Es soll nur ein Test für das LCD
> sein,ob es in Ordnung ist.

Und warum musst du das wissen wenn du sowieso nicht vorhast es zu 
benutzen? :-p

von Karl T. (don_karlo)


Lesenswert?

Weil ich wissen will,ob die Hardware ok ist !

von Klaus W. (mfgkw)


Lesenswert?

Dann musst du aber noch verraten, für welche Taktfrequenz, sonst wird 
das mit den delay... nix.

von Karl T. (don_karlo)


Lesenswert?

orginal STK 500 mit  AT90S8515 ohne eingesetzten Quarz.
mfg Karl

von Klaus W. (mfgkw)


Lesenswert?

Karl Tomacek schrieb:
> Nur c ist mir komplett fremd.

DAS C ist meinem gcc übrigens auch fremd.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Klaus Wachtler schrieb:
> Dann musst du aber noch verraten, für welche Taktfrequenz, sonst wird
> das mit den delay... nix.

Ob er da tatsächlich einen AT90s8515 drauf hat, nur weil ein

  #include <90s8515.h>

im Source angegeben ist, steht auch irgendwo in den Sternen.

von Klaus W. (mfgkw)


Lesenswert?

Karl Tomacek schrieb:
> orginal STK 500 mit  AT90S8515 ohne eingesetzten Quarz.
> mfg Karl

trotzdem hast du eine Taktfrequenz, sonst läuft nicht viel.

Hängt dann halt von den Fuses ab.

von Klaus W. (mfgkw)


Lesenswert?

Frank M. schrieb:
> Ob er da tatsächlich einen AT90s8515 drauf hat, nur weil ein
>
>   #include <90s8515.h>
>
> im Source angegeben ist, steht auch irgendwo in den Sternen.

Das ist schon der erste Punkt, wo es bei meinem gcc hakt (es müsste 
avr/io.h sein, und der Typ über Compileroption gewählt).
Daß LCD_RW =... zu PORTC.1 =... expandiert, sieht auch nicht nach gcc 
aus.

Für welchen Compiler soll das denn sein?

von Karl T. (don_karlo)


Lesenswert?

ich kann die Fuses unter AVR 3.20 aus dem 90s8515 nicht auslesen !

von Klaus W. (mfgkw)


Lesenswert?

Dann würdest du vermutlich auch kein Hex-File reinbekommen :-)

Oder willst du es außen drauf kleben?

von Karl T. (don_karlo)


Lesenswert?

Konnte aber das Testprogramm im Handbuch kompilieren und brennen.
Und es lief ...

Oscillator steht auf 3.69 MHZ

von Klaus W. (mfgkw)


Lesenswert?

Welcher Oszillator?
Und relevant sind die Fuses trotzdem, sonst wird er evtl. ja gar nicht 
verwendet.

von Karl T. (don_karlo)


Lesenswert?

ich nehme an,der des Boards. Sonst würde mir das Studio das doch nicht 
anzeigen.

von Klaus W. (mfgkw)


Lesenswert?

Woher soll das Studio wissen, mit welchem Takt der uC läuft?

Abgesehen davon, ist es vielleicht einfacher, ein vorhandenes Programm, 
von dem man weiß, daß es funktioniert, auf deine Portbelegung 
anzupassen, und mit dem gcc zu kompilieren.

Was aber auch nicht viel hilft, wenn du nicht das fertige Programm nicht 
reinflashen kannst, was ich befürchte wenn du schon nicht die Fuses 
auslesen kannst.

von Karl T. (don_karlo)


Lesenswert?

Ich wäre sowieso mit assembler glücklicher ...

Ich bekam das Beispiel vom ehemaligen Boardbesitzer ...

von Karl H. (kbuchegg)


Lesenswert?

Karl Tomacek schrieb:
> Ich wäre sowieso mit assembler glücklicher ...

Was hindert dich dann daran?

Nur so als Beispiel
1
unsigned char _lcd_read_nibble(void)
2
{                 
3
  unsigned char data;
4
                                      
5
  // Timing entsprechend Datenblatt
6
  LCD_RW = LCD_READ;
7
  LCD_EN = LCD_EN_SET;
8
9
  ...

Die Funktion heißt _lcd_read_nibble. Was also wird diese Funktion wohl 
machen? Ähm. Da muss man kein Helllserher sein um zu raten: Ein Nibble 
vom LCD zurücklesen.

Die FUnktion fängt an mit:

   LCD_RW = LCD_READ

Allgemeine Regel der meisten Hochsprachen lautet:
Irgendetwas in dieser Form ist eine Zuweisung. Dem Teil links vom = wird 
der Teil rechts vom = zugewiesen.

LCD_RW ist was?
Na da scrollen wir mal ein wenig hoch

#define LCD_RW PORTC.1

Aha. LCD_RW ist also nur eine andere Bezeichnung für PORTC.1  Selbst 
wenn man das noch nie gesehen hat, würde man die Wette, dass es sich 
dabei um das Bit 1 vom PORTC handelt nicht verlieren.

Also dem Bit 1 vom PORTC wird etwas zugewiesen.
Was wird ihm zugewiesen?

   ... = LCD_READ

Na, da scrollen wir wieder ein bischen hoch um zu sehen, was es mit 
LCD_READ auf sich hat.

#define LCD_READ 1

AHa. LCD_READ ist also ein anderer Name für 1

Alles zusammengefasst ergibt das:

Das Bit 1 am PORTC wird auf 1 gesetzt.

Und da dieses auf 1 setzen logisch gesehen alles mögliche sein kann, 
kann man das in C so abstrahieren, dass da eben nicht steht

   PORTC, BIT 1  <--- 1

sondern

  LCD_RW = LCD_READ;

und damit rein durch die Schreibweise klargestellt ist: wir reden hier 
von der R/W Leitung zum LCD (die offenbar am Bit 1 vom PORTC 
angesschlossen ist) und diese Leitung wird zum Zwecke eines Leseversuchs 
auf LCD_READ (welches 1 ist) gesetzt.

In so manchem Assembler würde das dann eben zb

   SBIT PORTC, 1

lauten.

von Peter D. (peda)


Lesenswert?

Klaus Wachtler schrieb:
> Und relevant sind die Fuses trotzdem, sonst wird er evtl. ja gar nicht
> verwendet.

Nö, die alten AT90S8515 brauchten immer einen externen Takt.
Die Fuses sind daher egal.


Peter

von Karl T. (don_karlo)


Lesenswert?

Weil ich bis jetzt noch immer nicht weiß,ob ich das Board updaten soll 
...
denn ich fürchte,dass es nach dem Update auf die Version 2 nicht mehr 
funktioniert.

... denn Atmel Deutschland hat mir diese Frage nicht beantwortet !

von Klaus W. (mfgkw)


Lesenswert?

Peter Dannegger schrieb:
> Klaus Wachtler schrieb:
>> Und relevant sind die Fuses trotzdem, sonst wird er evtl. ja gar nicht
>> verwendet.
>
> Nö, die alten AT90S8515 brauchten immer einen externen Takt.
> Die Fuses sind daher egal.
>
>
> Peter

ok, das heißt aber auch nicht im Umkehrschluß, daß die 3.69 MHz 
irgendwie verlässlich sind.

von Michael H. (michael_h45)


Lesenswert?

Karl Tomacek schrieb:
> Weil ich bis jetzt noch immer nicht weiß,ob ich das Board updaten soll
> ...
> denn ich fürchte,dass es nach dem Update auf die Version 2 nicht mehr
> funktioniert.
warum fürchtest du das? weil updates immer böse und schlecht sind?
das hat doch damit nicht das geringste zu tun. die V2 ist die firmware 
des STK500, nicht die von irgendeinem controller, der drinsteckt.

> ... denn Atmel Deutschland hat mir diese Frage nicht beantwortet !
oh gott...
lass doch die armen leute mit deiner faulheit in ruhe und lies doch erst 
mal selber!


du bist ein cholerisches, hektisches kleinkind, dem es gut tun würde, ne 
halbe stunde die füße und v.a. finger stillzuhalten und sich in die 
grundlagen vom board einzulesen.
die leute schreiben ja auch was zu dem board, der software dazu und den 
updates.
so wie du stellt sich ja kein 10-jähriger mehr an, "don" karlo...

von Karl T. (don_karlo)


Lesenswert?

Und wie soll ich das deuten :


Absolute Vorsicht ! ! !

    Bevor Ihr überhaupt versucht ein "Firmware Update" für das STK500 zu
machen, solltet ihr Euch davon Überzeugen, ob es für Euer Modell
überhaupt möglich ist !!!!
    -- Es gibt "ältere Modelle" des STK500 die "wie oben beschrieben"
nicht mit der neueren Firmware "updatet" werden können..
    --So könnt Ihr erkennen ob Euer STK500 ubdatebar ist oder nicht !!
(auch ohne Garantie)

    Schaut euch die beiden ATMEL-Chips auf dem STK500 an und schreibt
die Tüpen auf-

    - Das alte Board, das "nicht" mit der neuen Software, "updatet"
werden kann, hat 2 ATMEL-Bausteine: AT90S1200-125SC und AT90S8535 8AC
(SMD-Bausteine)

... und abgesehen davon,hab ich 50 Lenze drauf ! , soviel zum Kleinkind 
...

von Michael H. (michael_h45)


Lesenswert?

Von welchem Halbaffen ist denn das Gestammel?
Wieso meinst du, irgendein dahergelaufener Trottel aus dem Internet kann 
alles wissen?

Nochmal: lies das, was Atmel zu dem Update schreibt. Da steht doch 
alles.

von Peter D. (peda)


Lesenswert?

Karl Tomacek schrieb:
> -- Es gibt "ältere Modelle" des STK500 die "wie oben beschrieben"
> nicht mit der neueren Firmware "updatet" werden können..

Wo steht das?

Ich hab so ein altes Board und es läuft prima mit AVRstudio 4.18.
Welche Version der Chip hat, kann ich jetzt nicht feststellen, aber alle 
Updates, die das Studio vorgeschlagen hat, hab ich brav durchgeführt.


Peter

von Karl T. (don_karlo)


Lesenswert?

Wurde von Atmel an einen Distributor verwiesen --  in Österreich
Hab jetzt mit dem offiziellen ATMEL Distributor telefoniert. Nichteinmal 
der konnte mir die Updatefrage beantworten !
Obwohl mir Atmel versicherte, dass der Distri speziell für solche Sachen 
geschult wurde !

mfg Karl

von Electronics'nStuff (Gast)


Lesenswert?

Michael H. schrieb:
> Wieso meinst du, irgendein dahergelaufener Trottel aus dem Internet kann
> alles wissen?

Die Ironie in diesem Satz ist dir wohl entgangen.

von Michael H. (michael_h45)


Lesenswert?

Electronics'nStuff schrieb:
> Michael H. schrieb:
>> Wieso meinst du, irgendein dahergelaufener Trottel aus dem Internet kann
>> alles wissen?
>
> Die Ironie in diesem Satz ist dir wohl entgangen.
nein, ganz und gar nicht. du hast sie nicht verstanden. sorry.
denn ich geb ja extra nicht irgendwelche halbseidenen tipps.
richtige tipps kann hier keiner geben, weil er zu blöd ist - ja mein 
gott, irgendwann muss man es halt so sagen -, hier von vorne bis hinten 
zu schreiben, was sache ist.
anstatt dessen kann ich nur mitleid mit den knöpfen an seinem kragen 
haben, der sich bläht =)

entweder er gibt detailliert an, was er vor sich hat und was er will, 
oder er liest die offizielle doku.

warum soll er mit irgendwem telefonieren oder irgendjemand fragen, 
wenn er doch nur lesen müsste. es steht alles da, was es zu wissen gibt. 
man muss nur noch hinschaun =)


sind leute echt zu dumm, zu einem update releasenotes zu lesen?

von Electronics'nStuff (Gast)


Lesenswert?

Michael H. schrieb:
> nein, ganz und gar nicht. du hast sie nicht verstanden. sorry.
> denn ich geb ja extra nicht irgendwelche halbseidenen tipps.

Ich fürchte fast, du hast nicht verstanden, worauf ich hinaus will.

Michael H. schrieb:
> warum soll er mit irgendwem telefonieren oder irgendjemand fragen,
> wenn er doch nur lesen müsste. es steht alles da, was es zu wissen gibt.
> man muss nur noch hinschaun =)

Alles steht irgendwo. Man bräuchte kein Forum, wenn alle so denken 
würden.

Michael H. schrieb:
> sind leute echt zu dumm, zu einem update releasenotes zu lesen?

Nicht jeder ist der englischen Sprache mächtig (obwohl es natürlich 
unvorteilhaft ist in technischen Berufen).

von Michael H. (michael_h45)


Lesenswert?

Electronics'nStuff schrieb:
> Michael H. schrieb:
>> nein, ganz und gar nicht. du hast sie nicht verstanden. sorry.
>> denn ich geb ja extra nicht irgendwelche halbseidenen tipps.
>
> Ich fürchte fast, du hast nicht verstanden, worauf ich hinaus will.
doch, sehr wohl. eben dass "trottel im internet" mich miteinschließt. 
nur du hast mich noch immer nicht verstanden.
eben deswegen sag ich ja auch, dass ich zum sachverhalt selber nix sag.
weils nix vernünftiges zu sagen gibt.


> Alles steht irgendwo. Man bräuchte kein Forum, wenn alle so denken
> würden.
eben deswegen sag ich doch, wo er nachlesen soll. das hab ich jetzt zum 
dritten mal geschrieben...

>> sind leute echt zu dumm, zu einem update releasenotes zu lesen?
>
> Nicht jeder ist der englischen Sprache mächtig
sorry, aber das kann man nicht gelten lassen...

von Electronics'nStuff (Gast)


Lesenswert?

Michael H. schrieb:
> doch, sehr wohl. eben dass "trottel im internet" mich miteinschließt.
> nur du hast mich noch immer nicht verstanden.
> eben deswegen sag ich ja auch, dass ich zum sachverhalt selber nix sag.
> weils nix vernünftiges zu sagen gibt.

Da muss ich dir allerdings recht geben, sorry. So gesehen ziehe ich 
meinen Spruch zurück.

Michael H. schrieb:
> eben deswegen sag ich doch, wo er nachlesen soll. das hab ich jetzt zum
> dritten mal geschrieben...

Ja schon, aber wenn er selber lesen wollte hätte er das wohl schon 
längstens getan. Ich glaube nicht, dass es an seiner fehlenden Fähigkeit 
zu googeln liegt o.ä.

Michael H. schrieb:
>> Nicht jeder ist der englischen Sprache mächtig
> sorry, aber das kann man nicht gelten lassen...

Warum nicht? Für einige Leute ist das eine grössere Hürde als der 
Einstieg in die Mikrocontrollerprogrammierung.

von Karl T. (don_karlo)


Lesenswert?

... @  Michael H.

meintest du mich - zu blöd ?
mfg Karl

von Karl T. (don_karlo)


Lesenswert?

... hat denn niemand n Beispiel in asm ?
mfg Karl

von holger (Gast)


Lesenswert?

>ich kann die Fuses unter AVR 3.20 aus dem 90s8515 nicht auslesen !

Aus dem Datenblatt des AT90S8515:

The fuse bits are not accessible in Serial Programming Mode

Kein Wunder;)

von Spess53 (Gast)


Lesenswert?

Hi

>Aus dem Datenblatt des AT90S8515:
>The fuse bits are not accessible in Serial Programming Mode
>Kein Wunder;)

Naja, die zwei Fuses sind eigentlich recht überschaubar. Und daran herum 
spielen lohnt auch nicht.

MfG Spess

von Karl T. (don_karlo)


Lesenswert?

Ich hab endlich ein asm Beispiel gefunden - neuer Thread - 
Fehlermeldung,denn mit c geb ichs auf ...

mfg Karl

von Wilhelm F. (Gast)


Lesenswert?

Karl Tomacek schrieb:

> Nur c ist mir komplett fremd.

Was wäre dir denn lieber?

von Karl T. (don_karlo)


Lesenswert?

in asm
hab einen neuen Tread aufgemacht ! Fehlermeldung

von Ein Gast (Gast)


Lesenswert?

Karl Tomacek schrieb:
> hab einen neuen Tread aufgemacht ! Fehlermeldung

Ein Link zum Beitrag "Fehlermeldung ?" wäre 
doch jetzt das allergrößte - einfach so zum Anklicken

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.