- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 22 von 22

Thema: Probleme mit Stromversorgung beim AVR

  1. #21
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von askazo
    Kann es sein, dass ...
    - Spannung bricht durch zu hohen Stromfluss zusammen
    - Controller geht durch mangelnde Spannung aus ...
    Solche Problemchen hatten mich eine Weile genervt. Heute nicht mehr. Ich mache zu Beginn meiner Programme immer, gleich nach Initialisierung der Ports und noch bevor irgendwelche Interrupts gesetzt oder Variablen definiert werden, eine Blinkschleife, siehe den folgenden Code, ziemlich weit unten, ab "for(i=0; i<10; i++)" :

    Code:
    // =================================================================================
    // =====  Subroutinen  =============================================================
    // =================================================================================
    /*### Programm pausieren lassen  !! Der Pausenwert ist nur experimentell !*/ 
    
    void waitms(uint16_t ms) 
    { 
       for(; ms>0; ms--) 
       { 
    //      uint16_t __c = 4000; 
          uint16_t __c = 4913;      // für m168/20MHz ohne IRS
          __asm__ volatile ( 
             "1: sbiw %0,1" "\n\t" 
             "brne 1b" 
             : "=w" (__c) 
             : "0" (__c) 
          ); 
       } 
    } 
    // =================================================================================
    // =====  ENDE    Subroutinen  =====================================================
    // =================================================================================
    
    
    // =================================================================================
    // ===  HAUPTProgramm ==============================================================
    // Initialisierungen, LED1 kurzblinken als Signal für Programmstart
    
      int main(void)
    {        
      uint16_t i;
                   
    // Pins/Ports als Ein- (0) oder Ausgänge (1) konfigurieren, Pull Ups (1) aktivieren
    //   A = Ausgang, E = Eingang ohne , EU = Eingang MIT PullUp
      DDRB  = 0b10011111;   // siehe aktuell oben oder Fortschritt/R2D2
      PORTB = 0b01100000;   //    und Port/Pull Ups (1)  aktivieren
    //  DDRB  = 0b00011111;   // siehe aktuell oben oder Fortschritt/R2D2
    //  PORTB = 0b11100000;   //    und Port/Pull Ups (1)  aktivieren
                             
      DDRC  = 0b01110000;   // PC3 ist ADC3, PC0 .. 6 , kein PC7-Pin bei m168
      PORTC = 0b00000111;   // Beachte für ADC: PC3 ist ADC-Eingang ##>> OHNE Pullup !!
                            // 
      DDRD  = 0b11110000;   // -> siehe unter DDRB,  sowie PD2,3 extInt
      PORTD = 0b00001111;   //    Pull Ups aktivieren
                            //   Encoder_1 = ExtINT0 = PortD2, Encoder_2 = PortD3
    
    . . . . . . . . . . . .
                   
      for(i=0; i<10; i++)   // LED auf PD1 blinken lassen 
                            //   ###>>> bevor Interrupts erlaubt sind, um ungewollte
    			//   Resets u.ä. besser erkennen zu können
      {                       
        PORTD |=  (1<<PD1);         // LED auf PD1 schalten EIN, HELL
        waitms(20);                  //    ... damit man kurze resets besser erkennt
        PORTD &= ~(1<<PD1);         // LED auf PD1 schalten AUS, Dunkel
        waitms(80);           
      }                               
                                      
      PORTD |=  (1<<PD1);           // LED auf PD1 schalten EIN, HELL
      waitms ( 2000);
                             
    // ================================================================================
    //  Testabschnitt(e). 
    // ================================================================================
    Dieses typische Blinken kostet kaum Programmplatz und zeigt mir an, dass ein Reset da war . . . . .
    Ciao sagt der JoeamBerg

  2. #22
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345
    Also, das Flimmern hat aufgehört als ich den Kondensator (oben C1) durch einen 100µF Kondensator ersetzt habe.
    Vielen Dank allen, die mir geholfen haben, obwohl das eigentliche problem nix mit der Kategorie hier zu tun hatte
    Roboter, CNC Fräse, Elektronik und Basteleien stelle ich auf meiner Website vor...

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress