Hallo, ich versuche gerade einen ATTINY12 mit AVR Studio in C zu programmieren. Beim kompilieren kommt dieser Fehler: ../2.c:1: error: MCU 'attiny12' supported for assembler only Heisst das, dass ich den Controller überhaupt nicht in C mit AVR Studio programmieren kann?
Hi, genau das heisst es. Der ATTINY12 hat keinen Stack, daher ist ein Programmieren mit Funktionsaufrufen nicht möglich. Gruss Robert
@ gästele (Gast) >Heisst das, dass ich den Controller überhaupt nicht in C mit AVR Studio >programmieren kann? Ja.
Schade, dann muss ich es in Assembler probieren. Aber wieso funktioniert das untere Programm nicht? Es wird zwar alles fehlerfrei übertragen, aber am ATTINY liegen bei den ausgängen keine spannungan en. .include "m8def.inc" ldi r16, 0xFF out DDRB, r16 ldi r16, 0xff out PORTB, r16 ende: rjmp ende
@ gästele (Gast)
>.include "m8def.inc"
Für den tiny12? Wohl eher nicht . . .
MFg
Falk
gästele wrote: > Heisst das, dass ich den Controller überhaupt nicht in C mit AVR Studio > programmieren kann? Es wird schwierig und ist folgendermassen machbar: 0) Möglicherweise C-Header für dein Teil schreiben. 1) Du wählst ein AVR-Derivat, das für C unterstützt wird und möglichst "nahe" am ATtiny12 ist. 2) Du schreibst deinen Code so, daß keine unerlaubten Instruktionen erzeugt werden. Ist ein eigenes Kapitel ;-) 3) Compileren für den "nahen" µC, daber SFR-Beschreibungen für den eigentlichen µC verwenden. 4) Assemblieren und Linken für den Ziel-µC. Falls 2) nicht erfüllt ist sollte der Assembler meckern, evtl auch der Linker meckern.
@ Johann L.: Da ich noch nicht sehr viel mit AVR's gemcht habe, probiere ich es möglichst erstmal ohne viel komplizierte Schritte. @ Falk Brunner: Danke, ich habe es durch tn12def.inc ersetzt, aber leider messe ich trotzdem keine spannung.
> Es wird schwierig und ist folgendermassen machbar:
Mit sehr fragwürdigem Sinn allerdings :-)
Das kann an deiner Schaltung liegen und an dem Pin an dem du misst. Für PB3, PB4 und ganz besonders PB5 muss man ins Datenblatt schauen! Für's erste schlage ich vor, dass du nur einen Pin PB0 schaltest und auch an diesem misst. Wenn das fehlschlägt, dann solltest du mehr Infos ranschaffen.
Nen C-Compiler der funktionieren könnte wäre der ICCTiny von Imagecraft. Ich benutze selbigen für ATTiny11 Chips, und das ganze funktioniert soweit eigentlich auch ganz gut... http://www.imagecraft.com/devtools_tinyAVR.html Ob du damit glücklich wirst ist was anderes, aber es gibt ne 30-Tages Version zum Download daher kann man da nicht viel falsch machen. Nach den 30 Tagen kann man es auch für nicht komerzielle Zwecke weiterverwenden.
Die DDR für PortB schon auf Ausgang gesetzt? ldi r16,255 out ddrb,r16
gästele wrote: > Heisst das, dass ich den Controller überhaupt nicht in C mit AVR Studio > programmieren kann? Ja. Aber warum sollte man sich auch mit Chips beschäftigen, die man ausm Museum klauen muß? Nimm den Nachfolger ATtiny13 (Reichelt: 0,80€), dann klappts auch mitm GCC. Peter
Ich für meinen Teil tue es weil ich geizig bin. Der ATTiny11 kostet in der SMD Variante 50 Cent, da hab ich mir irgendwann mal nen Vorrat von angeschafft und der wird jetzt aufgezehrt... Ist halt ziemlich billig das Ding...
>Ey mach mal die Augen auf du Kleinkind :P
Das stand vorhin noch nicht da.
Wurde warscheinlich erst nach meiner Antwort eingefügt. :=)
ich habe den Ausgang PB0 bereits genutzt. Im Anhang dazu ist der Schaltungsausschnitt. Trotzdem: Keine Spannung.
Der Schaltbildfetzen reicht (mir) nicht aus, um die Sache zu beurteilen. Z.B. wo geht die Abzweigung direkt hinter dem PB0 hin (GND? => gemessene Spannung 0 ist erklärbar). Z.B. stimmt der Rest der Schaltung, hat der µC überhaupt eine Chance, das an sich richtige Programm auszuführen? Sorry.
Die Abzweigung geht nur zum Programmierstecker. Desshalb der Jumper. Ich habe dann zwischen GND und der Abzweigung gemessen.
Mit. Aber hat das überhaupt einfluss? Der fehler ist ja, dass ich schon am Pin des AVR's nichts messen kann. Programmieren lässt er sich einwandfrei.
mr.chip wrote: >> Es wird schwierig und ist folgendermassen machbar: > > Mit sehr fragwürdigem Sinn allerdings :-) Es ist ein möglicher Weg. Wenn ich so ein Ding zu proggen hätte... mit gcc antesten vertut man sich ja nix. Er macht C -> asm, was ist daran fragwürdig? asm kode kann mal spaßig sein, aber es ist aufwändiger. Und evtl. gibt's schon ne C-Vorlage. Es gehen sogar Funktionsaufrufe (per inline-Func). ISRs würd ich allerdings von Hand schreiben, bzw das kann man wohl nicht an den Compiler abwälzen.
Warum hat er dann einen Stack Pointer und ein Hardware Stack? Datenblatt Seite 4.
Hi >Warum hat er dann einen Stack Pointer und ein Hardware Stack? Datenblatt >Seite 4. Warum nicht? Der Hardware Stack ist allerdings sehr begrenzt: "The ATtiny11/12 uses a 3-level-deep hardware stack for subroutines and interrupts." Außerdem kennt der ATTiny12 keine Push/Pop-Befehle. MfG Spess
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.