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?
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 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.
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.
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...
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.
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.
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
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.