Hallo. Ich habe meinen ATMega64 auf internen RC Oszillator und internen RESET programmiert bei 8MHz. Zusätzlich habe ich ein kleines Programm geschrieben mit dem ich ein Port PIN wackeln lassen will. Dies läuft jedoch nicht. Und wenn ich die Spannung langsam herunterdrehe wird auch der interne RESET nicht ausgelöst. Ist der Controller vielleicht defekt, obwohl er sich programmieren läßt? Oder habe ich irgend was vergessen? Die Port Pins sind alle initiailsiert meist als Ausgänge die nach dem RESET auf low liegen. Hoffe auf Eure Hilfe. Stefan
Hier kommt der Ausschnitt des Programms und der Schaltplan. Programmausschnitt: void Init(void) { DDRA = 0b00011111; // PA0-PA4 als Ausgänge PORTA = 0b00000000; // alle Ausgänge auf low DDRB = 0b00000000; // alle Pins im Tristate PORTB = 0b00000000; // DDRC = 0b00011111; // Pin 0-4 als Ausgänge PORTC = 0b00000000; // alle Ausgäng auf low DDRD = 0b00000000; // alle Pins als Eingänge PORTD = 0b11111111; // alle Pull-Ups eingeschaltet DDRE = 0b01100011; // RXD, TXD, PE2 PE3 für Spannungsüberwachung, PE5 und PE6 Takt und Signal PORTE = 0b00000011; // AIN1 AIN0 im Tristate PORTE = 0b01100011; PORTE = 0b00000011; DDRF = 0b00000000; // alle Pins als Eingänge PORTF = 0b00000000; // alle Pins tristate } /////////////////////////////////////////////////////////////////////// Main Funktion /////////////////////////////////////////////////////////////////////// void main(void) { Init(); while(1) { PORTE=0b00100000; PORTE=0b00000000; } return;
M103C Kompatibilitäts Mode auch deaktiviert (Fuse Bit) ? Sonst gibt`s Probleme mit dem Stack.
Kannste mal genau erklären, was deiner macht? Woher siehste, dass der RESET nicht funktioniert.. dave
M103C ist programmiert. Der interne RESET funktioniert jetzt. Jedoch wackelt mein Port Pin immer noch nicht. Stefan
Du solltest mal ein delay nach setzen und löschen der port-bits einfügen. Selbst bei 1MHz 'flakert' eine led so schnell das man es nicht sieht. Ein DVM ist auch zu traäge um die änderung zu messen. while(1) { PORTE=0b00100000; delay(); PORTE=0b00000000; delay(); } Olaf
Die LED muss zunächst nicht blinken. Ich schaue mir die Leitung mit einem Oszi an, welches 8MHz auflösen kann. Aber ich versuche es trotzdem einmal. Danke
probier das mal mit nem anderen port (a-d) vielleicht ist das ja ein compiler-problem... wegen memory mapped zugriff auf die oberen ports
Ich habe vorhin die Sache mit dem M103C Fus Bit falsch verstanden. Habe es jetzt "deaktiviert" und mein Port Pin wackelt jetzt. Ich dank Euch viel mals. 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.