Hallo, ich habe mit PonyProg über ein Pollin Funk-AVR-Evaluierungsboard einem ATTiny2313 ein Testprogramm zum sekundenweisen abwechselnden Blinken der beiden Test-LEDs des Boards an PD5 und PD6 geflasht; soweit funktionierte es. Danach habe ich wollte ich dasselbe zusätzlich mit den Ausgängen PB4 und PB5 machen. Das war wohl ein Fehler, denn nun flackert nur noch die LED an PD6 mit etwa 10 Hertz. Der Controller läßt sich nun auch weder auslesen noch schreiben. Was habe ich da falsch gemacht und kann man den Controller noch retten ? Danke und Grüße Mark
An PB4 und PB5 sind auf der Platine keine LEDs angeschlossen. Ich vermute daher, du hast da was eigenes angeschlossen, oder? PB5 hat als zweite Funktion MOSI und das ist eine wichtige fürs Programmieren benötigte Leitung. Hast du bereits versucht alle eigene Hardwareerweiterungen - besonders die an PB5 - zu entfernen bevor neu programmiert wird?
Sorry, meine Kristallkugel ist überlastet. Eventuell mal das Testprogramm posten?
Hallo, erstmal danke für die schnellen Reaktionen :-) @Stefan: an PB4 und PB5 sind auf dem Board keine LEDs, aber die Pins sind ja über einen Pfostenstecker herausgeführt. An diesen kann man den Pollin 4-fach SUB-D-Adapter (Subd-D Port "Schrittmotorplatine 1") über ein 40poliges Flachbandkabel anschließen. Dort werden dann PB4 und PB5 auf die Sub-D Pins 2 und 3 verbunden. So wollte ich dann die Pollin Relaiskarte K8 IO anschließen; aber ersteinmal nur zwei LEDs und das ist ja leider auch schon schiefgegangen. @Netzwanze: von der Webseite http://www.mikrocontroller.net/articles/Pollin_Funk-AVR-Evaluationsboard habe ich ein Testprogramm zum Blinken der beiden Onboard LEDs genommen und um die im nachfolgenden Code auskommentierten Zeilen bzgl. PB4 und PB5 ergänzt. ///////////////////////////////////////////////////////////////// /* Atmega8 Pollin Funk-AVR-Evaluationsboard v1.1 Project -> Configuration Options in AVR Studio: Frequency: 1000000 bzw. 12000000 Optimization: -Os */ #include <avr/io.h> #include <util/delay.h> // LEDs sind active-high geschaltet #define LED_AN(LED) (PORTD |= (1<<(LED))) #define LED_AUS(LED) (PORTD &= ~(1<<(LED))) #define LED_TOGGLE(LED) (PORTD ^= (1<<(LED))) #define LED1 PD6 #define LED2 PD5 #define TASTER PB1 int main(void) { DDRB &= ~(1<<TASTER); // Port B: Eingang für Taster DDRD |= (1<<LED1) | (1<<LED2); // Port D: Ausgang für LED1 und LED2 // Anfangseinstellung LED_AN(LED1); LED_AUS(LED2); //LED_AN(PB4); //LED_AUS(PB5); while(1) { _delay_ms(1000); // Wert 1000 erlaubt ab avr-libc 1.6 LED_TOGGLE(LED1); LED_TOGGLE(LED2); //LED_TOGGLE(PB4); //LED_TOGGLE(PB5); } } ///////////////////////////////////////////////////////////////// Danke und Grüße Mark
Mark Vybiral schrieb: > #define LED_AN(LED) (PORTD |= (1<<(LED))) > #define LED_AUS(LED) (PORTD &= ~(1<<(LED))) > #define LED_TOGGLE(LED) (PORTD ^= (1<<(LED))) > #define LED1 PD6 > #define LED2 PD5 Da wird PORTD verwendet. > //LED_AN(PB4); > //LED_AUS(PB5); Hier gibst Du zwar PB4 und PB5 an, es wirkt sich aber auf PD4 und PD5 aus! PD4 und PB4 hat den gleichen Wert, und zwar 4. > while(1) > { > _delay_ms(1000); // Wert 1000 erlaubt ab avr-libc 1.6 > LED_TOGGLE(LED1); > LED_TOGGLE(LED2); > //LED_TOGGLE(PB4); > //LED_TOGGLE(PB5); dito.
Das angegebene Programm hat ja schon Christian kommentiert, deshalb hier nix dazu. Wenn du nur die LEDs ohne Vorwiderstände angeschlossen hast, hast du elektrisch gesehen bei richtiger Polung der LEDs potentielle Kurzschlüsse geschaltet, weil die LEDs den Geist aufgeben können. Bei falscher Polung hast du die potentiellen Kurzschlüsse zufällig umgangen. Nochmal die Frage: Hast du bereits versucht alle eigene Hardwareerweiterungen - besonders die an PB5 - zu entfernen bevor neu programmiert wird?
Mark Vybiral schrieb: > Danach habe ich wollte ich dasselbe zusätzlich mit den Ausgängen PB4 und > PB5 machen. Das war wohl ein Fehler, denn nun flackert nur noch die LED > an PD6 mit etwa 10 Hertz. > > Der Controller läßt sich nun auch weder auslesen noch schreiben. Was > habe ich da falsch gemacht und kann man den Controller noch retten ? Haaaahaaaaa
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.