Hallo zusammen! Ich hab Folgendes Problem: Ich hab angefangen eine Platine aufzubauen, mit der ich mit einem ATmega16 etwas rumprobieren kann. Nachdem ich Testweise ein Programm auf den Controller geladen habe, habe ich festgestellt, dass die Portausgänge nur 3,9V haben, wenn sie auf 1 gesetzt werden. Die Versorgungsspannung ist konstant bei 5,15V (kommt von einem PC Netzteil) und der Programmiervorgang funktioniert auch problemlos. Hier mal der Programmcode: #include <avr/io.h> #define WARTEPIN PINB #define WARTEBIT 1 int main(void) { DDRB = 0x01; DDRA = 0xFF; DDRC = 0xFF; DDRD = 0xFF; while(1) { while ( !(WARTEPIN & (1 << WARTEBIT)) ) ; PORTB = 0x01; PORTA = 0xFF; PORTC = 0xFF; PORTD = 0xFF; while ( !(WARTEPIN & (1 << WARTEBIT)) ) ; PORTB = 0x00; PORTA = 0x00; PORTC = 0x00; PORTD = 0x00; } } Da es nur ein Testprogramm ist, habe ich mir das Tasterentprellen gespart. Vielleicht hat ja einer eine Idee, wo das Problem liegen könnte. Danke schonmal
Solange dein Taster gedrückt ist, werden die Pin mit sehr hoher Geschwindigkeit ständig ein- und wieder ausgeschaltet. Dein Messgerät zeigt halt einen Mittelwert davon an.
Ja, das weiß ich. Deswegen Drücke ich den Taster auch nicht dauerhaft, sondern so oft, bis die Ports zufällig auf 1 sind (LED leuchtet). Daran kanns also nicht liegen
Mach do einfach mal: DDRA = 0xFF; PORTA = 0xFF; while(1); Was haste dann für ne Spannung an PORTA?
ok, hab ich gemacht, an Port A liegen sogar nur 3,4V an. Kann das vielleicht irgendwas mit den Fuses und Lock-Bits zu tun haben? Hab den Controller nämlich mal mit einer Version von Yaap beschrieben, die den ATmega 16 nicht gekannt hat.
Evtl vergessen, AVCC anzuschließen? JTAG nicht abgeschaltet? (Ist per default an und belegt Portpins).
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.