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
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)
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
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.
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.
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
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.