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 | } |