Forum: Mikrocontroller und Digitale Elektronik STC15F104W will nicht so recht


von 8051_Anfänger (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich experimentiere zur Zeit mit dem chinesischen STC15F104W.
Ein Datenblatt ist angehängt.

Zum Anfang will ich einfach mal alle Ports blinken lassen.
Dazu habe ich dieses Projekt gefunden: 
https://github.com/ExploreEmbedded/8051_DevelopmentBoard/tree/master/Code/Keil_Sample_Codes/01a-LedBlinking

Wenn ich die dort unter "Objects" zu findende HEX-Datei auf den 
STC15F104W spiele, dann blinkt es ganz gut.

Wenn ich allerdings die main.c aus oben genanntem Link mit dem sdcc 
selbst compiliere:
1
sdcc main.c && packihx main.ihx > main.hex

und diese auf den Mikrocontroller flashe, dann funktioniert es nicht.

Ich habe mal beide HEX-Files disassembliert und die Listings angehängt. 
Kann mir jemand erklären, warum das eine geht und das andere nicht?

Muss ich an den Compiler-Einstellungen etwas ändern?

Vielen Dank!

von tgbyhn (Gast)


Lesenswert?

Soweit ist die geistige Armut schon, dass fuers LED-Blinken
fremde Hexfiles herhalten muessen.

Stell dich in die runde Ecke und schaeme dich ne Stunde lang!

von 8051_Anfänger (Gast)


Lesenswert?

tgbyhn schrieb:
> Stell dich in die runde Ecke und schaeme dich ne Stunde lang!

Danke für den Tipp, aber das hilft mir nicht weiter. Ich habe den selben 
C-Code selbst compiliert, aber mit dem daraus resultierenden HEX-File 
geht es nicht, aber mit dem von Github schon. Leider kenne ich mich mit 
dem 8051 noch nicht so gut aus und kennen auch den SDCC Compiler nicht. 
Anstatt mir einen solchen Rat zu geben, könntest Du mir vielleicht einen 
Tipp geben, was ich dem Compiler an Options geben muss, damit er für 
meinen Mikrocontroller lauffähige HEX-Files erzeugt?

von tgbyhn (Gast)


Lesenswert?

Besorg dir doch einen der vielen 8051-Simulatoren und finde es
selber heraus.

Bei Silabs gibt es glaub ich den Keil-Compiler fuer die Silabs 51er.
Fuer umsonst.
Versuch den mal...
Einen Simulator hat der uebrigens auch.

von 8051_Anfänger (Gast)


Lesenswert?

Das Problem war, dass der SDCC die RAM-Größe zu 256 Bytes annimmt.

mit
1
sdcc -mmcs51 --iram-size 128 blink.c

geht es ;-)

von tgbyhn (Gast)


Lesenswert?

Und mit dem Simulator gefunden?

Oder mit scharfem Auge?

von 8051_Anfänger (Gast)


Lesenswert?

tgbyhn schrieb:
> Und mit dem Simulator gefunden?
>
> Oder mit scharfem Auge?

Nachvollziehen der ASM-Listings. Hätte halt vermutet, dass ein Profi 
hier den Fehler sofort sieht und mich darauf hingewiesen hätte, darum 
habe ich hier gepostet.

Gibt es hier 8051-Profis? Und arbeitet noch jemand hier mit den 
STC-Mikrocontrollern? Wie verbreitet ist das? Jeder kennt wohl ARM, aber 
nicht STC?!

von tgbyhn (Gast)


Lesenswert?

Auch ein 8051-Profi haette erst das DB lesen muessen.
Und ganz ehrlich: Zum Sparen nimmt man keinen 8051 mehr.
Da muss schon spezielle Peripherie vorhanden sein um einen
den schmackhaft zu machen.
Oder ein Hersteller verwendet ihn in seinem Referenzdesign.

Und da wird ein "STC15F100" wohl eher nicht auftauchen...

Zum SDCC:
Die Referenzdesigns verwenden regelmaessig eher den Keil-Compiler.


Aber trotzdem viel Erfolg!

von Philipp Klaus K. (pkk)


Lesenswert?

Welches Board verwendest du? Eines dieser Einfachstboards, wie man sie 
mit 4-Pin STC15F104W auf ebay findet? Die sind ja recht billig, da 
könnteich bei Gelegenheit eins zu den Tutorials auf 
http://www.colecovision.eu/mcs51/ hinzufügen.

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.