lcd.c - Testprogramm - Wie kompiliere ich das richtig?

Moderator Persönliche Seite #2810463
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.
#2810494
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?
#2810513
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.
#2810521
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.
#2810591
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...
OP #2810601
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 
...
#2810613
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
OP #2810624
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
#2810657
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?
Gast #2810676
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).
#2810719
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...
Gast #2810734
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren