Hallo, Hänge gedanklich gerade an folgendem Problem. Mir viel auf, dass wenn ich die delay.h wie sie jeder kennt sprich unverändert etc anspreche fallen bei mir die Spannungen an den Ports beträchtlich ab. Also habe ich einen neuen Atemga ausgepackt. Hier die Ausgänge nicht mit externen Schaltungen belastet. Was dabei heraus kommt sieht man am besten mit dem Oszi und dem Quellcode. Folgend 3 Versuche. Wo ist mein Fehler? Komme da gerade echt nicht weiter. Vielleicht übersehe ich auch nur eine Kleinigkeit.
1. Versuch: Oszibild im Anhang. Quellcode hier: ####################################################### #include <avr/io.h> #define F_CPU 10000000UL #include <util/delay.h> int main (void){ PORTD |= (1<<PD2); while(1){} } #####################################################
2. Versuch: Oszibild im Anhang. Quellcode hier: ####################################################### #include <avr/io.h> #define F_CPU 10000000UL #include <util/delay.h> int main (void){ _delay_ms(1): PORTD |= (1<<PD2); while(1){} } #####################################################
3. Versuch: Oszibild im Anhang. Quellcode hier: ####################################################### #include <avr/io.h> #define F_CPU 10000000UL #include <util/delay.h> int main (void){ _delay_ms(10): PORTD |= (1<<PD2); while(1){} } #####################################################
Wie man sieht werden die High-Pegel immer kürzer was zum messbaren Spannungsabfall führt wenn man mit einem 0-8-15-Spannungsmesser ans Werk geht. Aber, wo ist der Fehler, dachte immer der Atmeag durchläuft die delay-Schleife, gibt Spannung auf den Port und tut dann in while(1) nicht mehr. Sprich es müsste immer ein High-Pegel am Atmega anliegen. Ps. Das Problem tritt auch auf, wenn man die Delay-Anweisung selber schreibt. Was dann auch schnell auffällt dass das Problem auch eintritt wenn man for-Schleifen nutzt. Zusätzliche Info: Externer Quarz: 10Mhz Optimierung des Compiers: Aus (Tritt aber auch auf, wenn man optimiert) Stromversorgung über ISP: Die bleibt auch konstant. Noch was vergessen???? Finde den Fehler einfach nicht
Super, das war das Problem!!!!!!!!!!!!!!!!!!!!!!! Vielen vielen Dank für die Antwort. Hat mir den Abend gerettet! Vielen Dank, Stefan
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.