Forum: Mikrocontroller und Digitale Elektronik Programmierung ATTINY12 in GCC


von gästele (Gast)


Lesenswert?

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?

von R. F. (rfr)


Lesenswert?

Hi,

genau das heisst es. Der ATTINY12 hat keinen Stack, daher ist ein 
Programmieren mit Funktionsaufrufen nicht möglich.

Gruss

Robert

von Falk B. (falk)


Lesenswert?

@  gästele (Gast)

>Heisst das, dass ich den Controller überhaupt nicht in C mit AVR Studio
>programmieren kann?

Ja.

von gästele (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@  gästele (Gast)

>.include "m8def.inc"

Für den tiny12? Wohl eher nicht . . .

MFg
Falk

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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.

von gästele (Gast)


Lesenswert?

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

von mr.chip (Gast)


Lesenswert?

> Es wird schwierig und ist folgendermassen machbar:

Mit sehr fragwürdigem Sinn allerdings :-)

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Tiny11 User (Gast)


Lesenswert?

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.

von Das Kleinkind (Gast)


Lesenswert?

Die DDR für PortB schon auf Ausgang gesetzt?
ldi r16,255
out ddrb,r16

von Jacob (Gast)


Lesenswert?

Ey mach mal die Augen auf du Kleinkind :P

von Peter D. (peda)


Lesenswert?

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

von Tiny11 User (Gast)


Lesenswert?

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

von Das Kleinkind (Gast)


Lesenswert?

>Ey mach mal die Augen auf du Kleinkind :P

Das stand vorhin noch nicht da.
Wurde warscheinlich erst nach meiner Antwort eingefügt. :=)

von gästele (Gast)


Angehängte Dateien:

Lesenswert?

ich habe den Ausgang PB0 bereits genutzt. Im Anhang dazu ist der 
Schaltungsausschnitt. Trotzdem: Keine Spannung.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von gästele (Gast)


Lesenswert?

Die Abzweigung geht nur zum Programmierstecker. Desshalb der Jumper. Ich 
habe dann zwischen GND und der Abzweigung gemessen.

von Das Kleinkind (Gast)


Lesenswert?

Mit oder ohne ProgStecker?

von gästele (Gast)


Lesenswert?

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.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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.

von Al Sinofor (Gast)


Lesenswert?

Warum hat er dann einen Stack Pointer und ein Hardware Stack? Datenblatt 
Seite 4.

von spess53 (Gast)


Lesenswert?

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

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Al Sinofor schrieb:
> Datenblatt Seite 4.

9 Jahre für 4 Seiten Datenblatt.

Neuer Rekord :-)

von Axel S. (a-za-z0-9)


Lesenswert?

Generation Pisa

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.