Subversion Repositories BL-Ctrl

Rev

Rev 31 | Rev 35 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 31 Rev 34
Line 187... Line 187...
187
   
187
   
188
    UART_Init();
188
    UART_Init();
189
    Timer0_Init();
189
    Timer0_Init();
Line -... Line 190...
-
 
190
    sei ();//Globale Interrupts Einschalten
-
 
191
   
190
    sei ();//Globale Interrupts Einschalten
192
        PORTD &= ~GRUEN;
191
   
193
        Delay_ms(500);
192
    // Am Blinken erkennt man die richtige Motoradresse
194
    // Am Blinken erkennt man die richtige Motoradresse
193
    for(test=0;test<5;test++)
195
    for(test=0;test<MOTORADRESSE;test++)
194
        {
196
        {
195
        if(test == MOTORADRESSE) PORTD |= GRUEN;
197
                PORTD |= GRUEN;
196
        Delay_ms(150);
198
                Delay_ms(200);                
197
        PORTD &= ~GRUEN;
199
        PORTD &= ~GRUEN;
198
        Delay_ms(250);
-
 
199
        }      
-
 
200
 
200
        Delay_ms(200);         
201
    Delay_ms(500);
201
        }
202
   
202
       
Line 203... Line 203...
203
    UART_Init();
203
    UART_Init();
204
    PWM_Init();
204
    PWM_Init();
Line 246... Line 246...
246
        if(!PWM)    // Sollwert == 0
246
        if(!PWM)    // Sollwert == 0
247
            {
247
            {
248
            MotorAnwerfen = 0;      // kein Startversuch
248
            MotorAnwerfen = 0;      // kein Startversuch
249
            ZeitFuerBerechnungen = 0;
249
            ZeitFuerBerechnungen = 0;
250
            // nach 1,5 Sekunden den Motor als gestoppt betrachten 
250
            // nach 1,5 Sekunden den Motor als gestoppt betrachten 
251
            if(CheckDelay(DrehzahlMessTimer))
251
            if(CheckDelay(MotorGestopptTimer))
252
                {
252
                {
253
                DISABLE_SENSE_INT;
253
                DISABLE_SENSE_INT;
254
                MotorGestoppt = 1;  
254
                MotorGestoppt = 1;  
255
                STEUER_OFF;
255
                STEUER_OFF;
256
                }
256
                }
Line 275... Line 275...
275
                }
275
                }
276
            // Berechnen des Mittleren Stroms zur (langsamen) Strombegrenzung
276
            // Berechnen des Mittleren Stroms zur (langsamen) Strombegrenzung
277
            if(CheckDelay(MittelstromTimer))  
277
            if(CheckDelay(MittelstromTimer))  
278
                {
278
                {
279
                MittelstromTimer = SetDelay(50); // alle 50ms
279
                MittelstromTimer = SetDelay(50); // alle 50ms
280
                if(Mittelstrom <  Strom) Mittelstrom++;// Mittelwert des Stroms bilden
280
                if(Mittelstrom < Strom) Mittelstrom++;// Mittelwert des Stroms bilden
281
                else if(Mittelstrom >  Strom) Mittelstrom--;
281
                else if(Mittelstrom > Strom) Mittelstrom--;
Line 282... Line 282...
282
       
282
       
283
                if(Mittelstrom > LIMIT_STROM)// Strom am Limit?
283
                if(Mittelstrom > LIMIT_STROM)// Strom am Limit?
284
                    {
284
                    {
285
                    MaxPWM--;// dann die Maximale PWM herunterfahren
285
                    MaxPWM--;// dann die Maximale PWM herunterfahren
Line 337... Line 337...
337
                    ENABLE_SENSE_INT;
337
                    ENABLE_SENSE_INT;
338
                    MinUpmPulse = SetDelay(100);
338
                    MinUpmPulse = SetDelay(100);
339
                    while(!CheckDelay(MinUpmPulse)); // kurz Synchronisieren
339
                    while(!CheckDelay(MinUpmPulse)); // kurz Synchronisieren
340
                    PWM = 10;
340
                    PWM = 10;
341
                    SetPWM();
341
                    SetPWM();
342
                    MinUpmPulse = SetDelay(200);
342
                    DrehzahlMessTimer = SetDelay(200);
343
                    while(!CheckDelay(MinUpmPulse)); // kurz Durchstarten
343
                    while(!CheckDelay(MinUpmPulse)); // kurz Durchstarten
344
                    MinUpmPulse = SetDelay(1000);
344
                    MinUpmPulse = SetDelay(1000);
345
                    altPhase = 7;
345
                    altPhase = 7;
346
                    }
346
                    }
347
                }
347
                }