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..
Nimm statt deiner Delay-Routine lieber eine vorgefertigte. zB delay_ms (100) SG Josef
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.
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
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...
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...
... gegenfrage ...den Reset brauch ich doch nicht ....laut Datenblatt gibt's power on reset...
Du musst Reset über 5k...10k an Vcc legen. Sonst wird datt nix... ...
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
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
...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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.