Hallo, ich bin gerade dabei mir einen Multiplexer (mit dem Atmega8) für eine 15 Segmentanzeige zu entwerfen, die meisten Funktionen klappen auch schon. Nur ein Display leuchtet dunkler als die anderen und zwar das welches durch den PORT PC6 (RESET PIN) bedient wird. Am PC 6 hängt die Kathode des Displays. Im Datenblatt kann ich keine Unterschiede zwecks der Strombelastung im Vergleich zu den anderen Pins des PORTS C finden. Hat hier schon einer ähnliche Erfahrungen gemacht und hat wenn möglich eine Lösung (ohne Treiber) für das Problem. Gruß Uwe
Hängt den noch etwas an dem Reset Pin dran? Und wie Programmierst du den Mega8?
Figure 151. Reset Pin as I/O – Pin Source Current vs. Output Voltage (VCC = 5V) Jo, der liefert wesentlich weniger Strom als die anderen IO.
Läubi .. schrieb: > Hängt den noch etwas an dem Reset Pin dran? Nein. >Und wie Programmierst du den Mega8? PORT INIT: void PORTs_init(void) { /* PORTB Segment j PB0 Segment k PB1 Segment l PB2 Segment m PB3 Segment n PB4 Segment p PB5 Segment DP PB6 Display 6 PB7 FUSES SETTING BEACHTEN ( PORT 6 + 7 INT OSC einschalten) */ DDRB = 0b10000000; // Datenrichtung wird erst im Programm festgelegt TRISTAT PORTB =0b00000000; // OFF // PB7 muss nach der Testphase noch auf 1 gesetzt werden. /* PORTD Segment a PD0 Segment b PD1 Segment c PD2 Segment d PD3 Segment e PD4 Segment f PD5 Segment g PD6 Segment h PD7 */ DDRD = 0b00000000; // Datenrichtung wird erst im Programm festgelegt TRISTAT PORTD = 0b00000000; // OFF /* // PORTC Display 1 PC0 Display 2 PC1 Display 3 PC2 Display 4 PC3 SDA PC4 SCL PC5 Display 5 PC6 (RESET) FUSES SETTING BEACHTEN */ DDRC = 0b01001111; // ALLE PORTS OUTPUT // PORT 4 + 5 TRISTATE PORTC = 0b00000000; // OFF } Auswahl DIGIT: void selectDigit(uint8_t digit) { switch (digit) { case 0: sbi(DIS1, DIS); // Zuschalten der ausgewählten Anzeige cbi(DIS2, DIS); // und abschalten der nicht cbi(DIS3, DIS); // ausgewählten Stellen cbi(DIS4, DIS); cbi(DIS5, DIS); cbi(DIS6, DI_S); break; case 1: cbi(DIS1, DIS); // Zuschalten der ausgewählten Anzeige sbi(DIS2, DIS); // und abschalten der nicht cbi(DIS3, DIS); // ausgewählten Stellen cbi(DIS4, DIS); cbi(DIS5, DIS); cbi(DIS6, DI_S); break; case 2: cbi(DIS1, DIS); // Zuschalten der ausgewählten Anzeige cbi(DIS2, DIS); // und abschalten der nicht sbi(DIS3, DIS); // ausgewählten Stellen cbi(DIS4, DIS); cbi(DIS5, DIS); cbi(DIS6, DI_S); break; case 3: cbi(DIS1, DIS); // Zuschalten der ausgewählten Anzeige cbi(DIS2, DIS); // und abschalten der nicht cbi(DIS3, DIS); // ausgewählten Stellen sbi(DIS4, DIS); cbi(DIS5, DIS); cbi(DIS6, DI_S); break; case 4: cbi(DIS1, DIS); // Zuschalten der ausgewählten Anzeige cbi(DIS2, DIS); // und abschalten der nicht cbi(DIS3, DIS); // ausgewählten Stellen cbi(DIS4, DIS); sbi(DIS5, DIS); cbi(DIS6, DI_S); break; case 5: cbi(DIS1, DIS); // Zuschalten der ausgewählten Anzeige cbi(DIS2, DIS); // und abschalten der nicht cbi(DIS3, DIS); // ausgewählten Stellen cbi(DIS4, DIS); cbi(DIS5, DIS); sbi(DIS6, DI_S); break; default: cbi(DIS1, DIS); // Zuschalten der ausgewählten Anzeige cbi(DIS2, DIS); // und abschalten der nicht cbi(DIS3, DIS); // ausgewählten Stellen cbi(DIS4, DIS); cbi(DIS5, DIS); cbi(DIS6, DI_S); break; } } Definition: #define DIS1 0 // PORTC #define DIS2 1 // PORTC #define DIS3 2 // PORTC #define DIS4 3 // PORTC #define DIS5 6 // PORTC #define DIS6 7 // PORTB
Hallo, holger schrieb: > Figure 151. Reset Pin as I/O – Pin Source Current vs. Output Voltage > (VCC = 5V) > > Jo, der liefert wesentlich weniger Strom als die anderen IO. Zustimmung, da bin ich auch schonmal drauf reingefallen... Gruß aus Berlin Michael
Uwe Liedtke schrieb: > Läubi .. schrieb: >> Hängt den noch etwas an dem Reset Pin dran? Nein. >>Und wie Programmierst du den Mega8? Auch wenn Holger wohl die Lösung hat, bezog sich meine Frage eher darauf wie das Programm in den Mega kommt, per Booatloader oder HV, aber wenn da im Betrieg nix dranhängt ist das eh obsolete.
Danke, die Seite habe ich im Datenblatt nicht gefunden. Der Tipp war wirklich sehr hilfreich. Gruß Uwe
Läubi .. schrieb: > Uwe Liedtke schrieb: >> Läubi .. schrieb: >>> Hängt den noch etwas an dem Reset Pin dran? Nein. >>>Und wie Programmierst du den Mega8? > Auch wenn Holger wohl die Lösung hat, bezog sich meine Frage eher darauf > wie das Programm in den Mega kommt, per Booatloader oder HV, aber wenn > da im Betrieg nix dranhängt ist das eh obsolete. das Programm kommt per HV in den Mega. Danke für Eure Hilfe !!!! Gruß Uwe
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.