Forum: Mikrocontroller und Digitale Elektronik ATtiny 15 funktioniert nicht !!


von Futurwave (Gast)


Lesenswert?

Hallo,
ich habe bisher noch nie mit AVR's gearbeitet sondern Hauptsächlich
mit 8051 bzw. C515C....und bin nun etwas ratlos...

Ich Programmiere mit ICCtiny in C. Um den uC einmal zu testen wollte
ich nur ein einfaches Programm verwenden.

#include <iotiny15.h>

void main()
{
   unsigned int i,j;
   DDRB = 0xFF;
   while (1)
   {
PORTB ^= 0x0F;
 for (j=0;j<5;j++)      //delay
   for (i=0;i<6658;i++)
      ;
   }
}

Dieses habe ich bevor ich es auf den uC geflasht habe im AVRStudio
erfolgreich getestet.(Port's werden ein und ausgeschaltet..)

Den chip habe ich dann mit TwinAVR beschrieben und den Flash inhalt
überprüft...soweit so gut.

Wenn ich nun jedoch Spannung an den uC anlege passiert rein
garnicht's! Die Pins bleiben tristate soweit ich dass beurteilen kann

...warum startet der uC nicht ??
..müssen irgendwelch fuse bit's gesetztt werden ???
.oder was muss ich noch beachten.
...kann der uC defekt sein und doch richtig geflasht werden??

Ich hoffe es kann mir jm. helfen..

von josef (Gast)


Lesenswert?

Nimm statt deiner Delay-Routine lieber eine vorgefertigte. zB delay_ms
(100)

SG Josef

von Futurwave (Gast)


Lesenswert?

die vorgefertigte routine gib es bei ICCtiny nicht...
und avr-gcc unterstützt soweit mir bekannt nur AVR's mit SRAM.

doch sollte mein Problem nicht an den beiden for schleifen hängen...,
wie gesagt im SImulator läuft das Programm ohne Fehlermeldungen.

von Christian Zietz (Gast)


Lesenswert?

Misst Du am Port evtl. ca. die halbe Betriebsspannung? Es kann sein,
dass der Compiler die leere Warteschleife einfach wegoptimiert und die
Portpins so schnell toggeln, dass Dein Messgerät nicht mehr mitkommt.
Wie Du die Optimierung Deines Compilers allgemein oder für speziell für
diese Schleife ausschaltest, musst Du in der Doku nachlesen. Evtl. hilft
ein
volatile unsigned int i,j;

Christian

von Futurwave (Gast)


Lesenswert?

leider Messe ich an den pins ... gegen Masse nichts,
aber bei 12V gegen Pins messe ich noch ~~5V...

?? ok ..werde mal das delay weg lassen und nur den Port definiert
schalten...

von josef (Gast)


Lesenswert?

Fehlermeldungen im Simulator ....?

von Futurwave (Gast)


Lesenswert?

also habe es jetzt noch mal mit asembler versucht !!

-> Programm gleich wie oben nur ohne "delay"....
schält also nur die PIN's....
..im Simulator (AVRStudio) werden die PIN's eingeschaltet (bei C und
asm).

Nur auf dem realen chip passiert nicht's....

vielleicht mache ich ja irgend einen Fehler(??)...
-Hex File auf den Tiny flashen...überprüfen...
-vom Paralelport trennen
-Versorgungsspannung anlegen
-Pins messen


Ich werd noch wahnsinnig !!! wenns nicht klappt nehm ich halt für zwei
Schalter und zwei Lampen nen Viel zu großen 8051 ...der Funktioniert
wenigstens un macht keine zicken...

von Peter D. (peda)


Lesenswert?

Du hast aber schon bedacht, daß die Resetpolarität andersrum ist, als
beim 8051 ?


Peter

von Futurwave (Gast)


Lesenswert?

... gegenfrage ...den Reset brauch ich doch nicht ....laut Datenblatt
gibt's power on reset...

von ...HanneS... (Gast)


Lesenswert?

Du musst Reset über 5k...10k an Vcc legen. Sonst wird datt nix...

...

von peter dannegger (Gast)


Lesenswert?

Der Power On Reset funktioniert aber nur, wenn VCC ganz schnell und von

0V und ohne Unterbrechung hochläuft.

Ansonsten mußt Du noch den Brown-Out aktivieren.


Ich hab spaßeshalber mal die Resetflags über LEDs ausgegeben.
Das Power-On Reset kam ganz selten, nur das Brown-Out-Reset hat
wirklich funktioniert.



Peter

von Adrian (Gast)


Lesenswert?

ich hatte mal genau das selbe mit dem MSP430. im simulator gings auch
einwandfrei.

nach langem (wirklich langem) raetseln habe ich mir mal ein Beispiel
von TI vorgenommen, und bin drauf gekommen dass es funktioniert, sobald
man den watchdog ausschaltet.

adrian

von Futurwave (Gast)


Lesenswert?

...danke an alle....
...wer lesen kann ist mal wieder klar im Vorteil....!!

..dass der Reset an VCC muss, hatte ich total übersehen...

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.