Forum: Mikrocontroller und Digitale Elektronik genügt die hex Datei zum Brennen?


von Stefan (Gast)


Lesenswert?

Hallo,

ich habe mir vor etwa 7 Jahren einige ATTINY26 von einer Firma 
programmieren lassen und benötige nun noch ein paar Controller. Man hat 
mir damals den Quellcode überlassen, aber ich bin mir nicht sicher, 
welche der Dateien ich eigentlich benötige. Leider ist die Firma nicht 
mehr im Geschäft, sonst hätte ich die Controller dort gern wieder 
bestellt :(
Ich habe selbst bisher nur ein paar einfache LED Ansteuerungen über 
Bascom programmiert und dass ist genauso lange her - nun möchte ich gern 
versuchen die Controller selbst zu brennen - deshalb nun die Frage.

Es sind folgende Dateien vorhanden:

main.c
taster.c
taster.h
counter_avr.hex

Reicht es aus, wenn ich die hex Datei brenne oder muss ich mit den 
anderen Dateien auch noch etwas machen?

LG,
Stefan

von hinz (Gast)


Lesenswert?

Die .hex reicht normalerweise. Schau aber ob darin auch die Fuses 
gesetzt werden, erkennbar an ein paar kurzen Zeilen am Ende.

von michael_ (Gast)


Lesenswert?

Evtl. kannst du die Fuse vom vorhandenen Kontroller auslesen.
Das Studio bietet für die Fuse eine eigene Datei an.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefan schrieb:
> Reicht es aus, wenn ich die hex Datei brenne

Fürs Programm ja. Allerdings haben die AVR auch noch Fuses zur 
Einstellung z.B. der Taktfrequenz und -quelle. Die sollten mit dem 
übereinstimmen, was bei den alten Controllern gemacht wurde.
Du kannst allerdings erstmal nicht viel falsch machen, wenn du nur das 
Programm flashst und an den Fuses nichts änderst. Dann läuft der Tiny 
mit internem RC Oszillator und 1Mhz Takfrequenz. Wenn ein externer Quarz 
montiert ist, könntest du auch gleich auf Ext. Crystal fusen. Der Tiny26 
hat 4 über Fuses wählbare Frequenzen für den internen Oszillator: 1Mhz 
(Standard), 2Mhz, 4 Mhz und 8Mhz.

Vermutlich wirst du aus dem Verhalten des Programmes dann rausfinden 
können, welche Einstellung die richtige ist - wenn du keinen originalen 
MC mehr zu Auslesen hast.
Wenn die Jungs damals gut waren, haben sie auch im Quellcode Angaben zum 
Takt gemacht.

von Stefan (Gast)


Lesenswert?

Herzlichen Dank für die superschnellen Antworten.
Also ist die hex Datei quasi die compilierte Version der c und h 
Dateien?

Ich kann im Moment nur die C-Dateien öffnen - und da steht drin:

/

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include "taster.h"

#ifndef F_CPU
#define F_CPU           1000000                   // processor clock 
frequency
#endif

#define SELF_COUNTER   1
#define MANUAL_COUNTER  2
#define SPK_ON     3

/

Taktfrequenz dann standard 1MHz, richtig?
Es sind nicht wirklich viele Bauteile auf der Platine, also kein Quartz.

Muss ich die anderen include Dateien auch noch irgendwo hernehmen oder 
sind die auch schon in der hex enthalten?

Keine Infos über die Fusebits - dann lass ich die erstmal so oder 
versuche mal einen Controller auszulesen. Muss mich da erstmal wieder 
hineinknien :)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefan schrieb:
> Muss ich die anderen include Dateien auch noch irgendwo hernehmen oder
> sind die auch schon in der hex enthalten?

Nö, du bist bereits fertig. Du flashst jetzt nur das HEX in 
fabrikfrische Controller, an die Fuses musst du nicht mehr ran, denn 
1Mhz Takt mit internem Oszillator ist der Auslieferzustand.

von hinz (Gast)


Lesenswert?

Stefan schrieb:

> Also ist die hex Datei quasi die compilierte Version der c und h
> Dateien?

Ja.


> Ich kann im Moment nur die C-Dateien öffnen -

Einfach die .hex im Editor öffnen.

von Stefan (Gast)


Lesenswert?

Klasse - Da kriege ich direkt wieder Lust ein wenig zu programmieren :)

Nochmals vielen Dank an Euch alle.

LG,
Stefan

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.