Forum: Mikrocontroller und Digitale Elektronik BASCOM: Hab ne ATTiny10.dat erstellt


von Simpel (Gast)


Angehängte Dateien:

Lesenswert?

Moin moin...

Hab mal für Bascom eine attiny10.dat erstellt. Alle Register- und 
Flagnamen entsprechen dem Attiny10-Datenblatt.

Die Bascom-Funktionalität ist allerdings sehr eingeschränkt aufgrund des 
winzigen SRAMs von nur 32Byte, das zudem bei r16 beginnt und muss noch 
evaluiert werden. Bascom benutzt einige der niederen Register 0-15 für 
eigene Operationen, was bedeutet, dass die meisten komfortableren 
Funktionen dann doch per Hand in Inline-Assembler dazwischen gefriemelt 
werden müssen.
Vielleicht findet der eine oder andere noch Möglichkeiten um die .dat zu 
verbessern (Mapping der unteren Registernamen..?) und die Funktionalität 
zu erweitern.

Immerhin ein ATTiny10-Blinker funzt schon mit normalen 
Bascom-Befehlen... ;-)

Programmiert hab ich ihn per MKIIv2-Klone (TPI) mit libusbk. Als 
Avrdude-Frontend benutze ich das MyAvr ProgTool 1.39 (Freeware), mit dem 
ich die, von Bascom generierte .bin Datei flashe.

Beispiel eines ersten funktionierenden Bascom-Tiny10-Blinker :)...

$regfile "attiny10.dat"
$crystal = 1000000
$hwstack = 4
$swstack = 0
$framesize = 4

Ddrb = 4
Portb=0
Dim B As Dword            'Wertebereich bis 4.294.967.295
'Immerhin schafft es Bascom ein DWORD zu verwalten, auch ohne seine 
Lower-'Register... ;-)

Do
 Incr B
 If B = 70000 Then
 Toggle Portb.2
 B = 0
 End If
Loop
end

'P.S. Die Bascom Wait_Funktion funzt beim tiny10 z.B. schonmal nicht.

Gruss Simpel

von Bastler (Gast)


Lesenswert?

Nicht "Simpel", eher kompliziert, wenn man hoffen muß, daßder Compiler 
kein nichtexistentes Register benutzt.
(was "Simpel" in bei mir daheim bedeutet, erläutere ich jetzt besser 
nicht)

von Simpel (Gast)


Lesenswert?

Den Thread kann man löschen...
Bascom produziert für obigen 6-Zeilen Code 178 Byte als bin-File... 
:-))

von Onkel Honka (Gast)


Lesenswert?

Hallo,
einfach nur gut,es ist fantastisch was hier einige abliefern .
Immer wieder neue Ideen und Lösungen für Probleme .
Herzlichen Glückwunsch dazu.

mfg

von J. H. (joho62)


Angehängte Dateien:

Lesenswert?

Darauf hab ich lange gewartet, ich danke Dir!
Ich krieg beim compilieren eine Fehlermeldung.
Wieso WDT?
Jo

von testtesttest (Gast)


Lesenswert?

Simpel schrieb:
> Programmiert hab ich ihn per MKIIv2-Klone (TPI) mit libusbk. Als
> Avrdude-Frontend benutze ich das MyAvr ProgTool 1.39 (Freeware), mit dem
> ich die, von Bascom generierte .bin Datei flashe.

Wunderbare Infos, aber welche Bascom Version braucht man, damit das 
kompiliert? Hab den gleichen Fehler wie J.H.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

ui geil ... AVR im SOT23-Gehäuse! Kannte ich noch nicht :) Wo kriegt man 
den her?

von J. H. (joho62)


Lesenswert?

Tiny10 hat kein WDTCR (Watchdog Timer Control Register)
dafür WDTCSR (Watchdog Timer Control and Status Register).

von Oliver R. (orb)


Lesenswert?

Mampf F. schrieb:
> Wo kriegt man den her?

Von den üblichen Verdächtigen: Mouser, Digikey, Farnell, Guloshop

von Simpel (Gast)


Lesenswert?

Leute vergesst das Ganze... war ein Schnellschuß in den Ofen.

Dass mein Testprogramm auf Anhieb und mit verschiedenen Variablengrössen 
funktioniert hat, war eher zufällig. Es wurde zwar trotz der 
Fehlermeldung (deren Ursache nicht in der .def-Datei liegt, dort gibt es 
kein WDTCR, nur WDTCSR) compiliert und hat auf dem Tiny10 auch 
funktioniert... Aber der Disassembler zeigt, dass da ne Unmenge an 
Code-Müll dazwischen ist und auch Registeraufrufe auf die unteren 0-15 
Register dabei sind.

Bascom greift ohne Beachtung der .def-Datei auf "seine" unteren Register 
zu und will auch seinen Framespace im Ram, sonst wird das gesamte 
Speichermanagement korrumpiert.

Hatte gehofft, dass man es mit Hilfe der attiny10.def wenigstens zum 
überwiegenden Programmieren in Assembler für den t10 nutzen kann, wenn 
man auf komplexe Bascom-Funktionen verzichtet und nur die einfachen 
verwendet. Aber auch das funktioniert nicht. Sorry.

von Paul B. (paul_baumann)


Lesenswert?

Simpel schrieb:
> Leute vergesst das Ganze... war ein Schnellschuß in den Ofen.

Trotzdem bedanke ich mich bei Dir für Deine Mühe und den Versuch, den 
niedlichen, kleinen Kontroller in Bascom nutzbar zu machen. Das konnte 
man
vorher nicht wissen, wie es ausgeht.
------------------------------------------------------------------------ 
--
Solche Beiträge tun wohl, in einer Zeit, in der es in den Foren immer 
mehr zu verbalem Hauen und Stechen kommt und das Rechthaben um jeden 
Preis im Vordergrund steht..

MfG Paul

von Simpel (Gast)


Lesenswert?

@Paul
Danke, dito...

Andere machen an den Feiertagen Sudokus, oder bauen das 13te 
Vogelhäuschen. Ich hab halt mal ne attiny10.dat gebastelt.... ;-)

von Alex W. (a20q90)


Lesenswert?

Hi Simple,

tolle Arbeit! Schade das Bascom das nicht kann.

Schreib doch mal an die Leute von MCS und teile ihnen mit was du gemacht 
hast. Eventuell müssen die nur ihre IDE anpassen. Wenn ich einen Bug 
finde, wird der teilweise am selben Tag gefixt.

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.