TIMER是否可以帮忙翻译一下德国人电调主程序的注释?
TIMER是否可以帮忙翻译一下德国人电调主程序的注释?就是电调源程序main.c中主函数的注释 里面很多词好象都不是英文哦
//############################################################################
//Hauptprogramm
int main (void)
//############################################################################
{
char altPhase = 0;
int test = 0;
unsigned int MinUpmPulse,Blink,TestschubTimer;
unsigned int Blink2,MittelstromTimer,DrehzahlMessTimer,MotorGestopptTimer;
DDRC= 0x08;
PORTC = 0x08;
DDRD= 0xBA;
PORTD = 0x80;
DDRB= 0x0E;
PORTB = 0x31;
UART_Init();
Timer0_Init();
sei ();//Globale Interrupts Einschalten
// Am Blinken erkennt man die richtige Motoradresse
for(test=0;test<5;test++)
{
if(test == MOTORADRESSE) PORTD |= GRUEN;
Delay_ms(150);
PORTD &= ~GRUEN;
Delay_ms(250);
}
Delay_ms(500);
UART_Init();
PWM_Init();
InitIC2_Slave(0x50);
InitPPM();
Blink = SetDelay(101);
Blink2 = SetDelay(102);
MinUpmPulse = SetDelay(103);
MittelstromTimer= SetDelay(254);
DrehzahlMessTimer = SetDelay(1005);
TestschubTimer = SetDelay(1006);
while(!CheckDelay(MinUpmPulse));
PORTD |= GRUEN;
PWM = 0;
SetPWM();
SFIOR = 0x08;// Analog Comperator ein
ADMUX = 1;
MinUpmPulse = SetDelay(10);
DebugOut.Analog = 1;
PPM_Signal = 0;
// zum Test der Hardware; Motor dreht mit konstanter Drehzahl ohne Regelung
if(TEST_MANUELL) Anwerfen(TEST_MANUELL);// kommt von dort nicht wieder
while (1)
{
if(!TEST_SCHUB) PWM = SollwertErmittlung();
//I2C_TXBuffer = PWM; // Antwort 黚er I2C-Bus
if(MANUELL_PWM) PWM = MANUELL_PWM;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(Phase != altPhase) // es gab eine Kommutierung im Interrupt
{
MotorGestoppt = 0;
ZeitFuerBerechnungen = 0; // direkt nach einer Kommutierung ist Zeit
MinUpmPulse = SetDelay(50);// Timeout, falls ein Motor stehen bleibt
altPhase = Phase;
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!PWM) // Sollwert == 0
{
MotorAnwerfen = 0; // kein Startversuch
ZeitFuerBerechnungen = 0;
// nach 1,5 Sekunden den Motor als gestoppt betrachten
if(CheckDelay(DrehzahlMessTimer))
{
DISABLE_SENSE_INT;
MotorGestoppt = 1;
STEUER_OFF;
}
}
else
{
if(MotorGestoppt) MotorAnwerfen = 1; // Startversuch
MotorGestopptTimer = SetDelay(1500);
}
if(MotorGestoppt && !TEST_SCHUB) PWM = 0;
SetPWM();
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!ZeitFuerBerechnungen++)
{
if(MotorGestoppt) PORTD |= GRUEN; //else PORTD &= ~GRUEN;
if(SIO_DEBUG)
{
DebugAusgaben();// welche Werte sollen angezeigt werden?
if(!UebertragungAbgeschlossen)SendUart();
else DatenUebertragung();
}
// Berechnen des Mittleren Stroms zur (langsamen) Strombegrenzung
if(CheckDelay(MittelstromTimer))
{
MittelstromTimer = SetDelay(50); // alle 50ms
if(Mittelstrom <Strom) Mittelstrom++;// Mittelwert des Stroms bilden
else if(Mittelstrom >Strom) Mittelstrom--;
if(Mittelstrom > LIMIT_STROM)// Strom am Limit?
{
MaxPWM--;// dann die Maximale PWM herunterfahren
PORTC |= ROT;
}
else
{
if(MaxPWM < MAX_PWM) MaxPWM++;
}
}
if(CheckDelay(DrehzahlMessTimer)) // Ist-Drehzahl bestimmen
{
DrehzahlMessTimer = SetDelay(10);
SIO_Drehzahl = (6 * CntKommutierungen) / (POLANZAHL / 2);
CntKommutierungen = 0;
if(PPM_Timeout == 0) // keine PPM-Signale
ZeitZumAdWandeln = 1;
}
if(CheckDelay(TestschubTimer))
{
TestschubTimer = SetDelay(1500);
if(TEST_SCHUB)
{
switch(test)
{
case 0: PWM = 50; test++; break;
case 1: PWM = 130; test++; break;
case 2: PWM = 60;test++; break;
case 3: PWM = 140; test++; break;
case 4: PWM = 150; test = 0; break;
default: test = 0;
}
}
}
// Motor Stehen geblieben
if((CheckDelay(MinUpmPulse) && SIO_Drehzahl == 0) || MotorAnwerfen)
{
MotorGestoppt = 1;
DISABLE_SENSE_INT;
MinUpmPulse = SetDelay(100);
if(MotorAnwerfen)
{
PORTC &= ~ROT;
MotorAnwerfen = 0;
Anwerfen(10);
PORTD |= GRUEN;
MotorGestoppt = 0;
Phase--;
PWM = 1;
SetPWM();
SENSE_TOGGLE_INT;
ENABLE_SENSE_INT;
MinUpmPulse = SetDelay(100);
while(!CheckDelay(MinUpmPulse)); // kurz Synchronisieren
PWM = 10;
SetPWM();
MinUpmPulse = SetDelay(200);
while(!CheckDelay(MinUpmPulse)); // kurz Durchstarten
MinUpmPulse = SetDelay(1000);
altPhase = 7;
}
}
} // ZeitFuerBerechnungen
} // while(1) - Hauptschleife
} 德语吧……真是鸟语花香呀~~~ 這里面有一半是英文,一半是德文,有認識它的朋友翻譯一下,我也想知道這些函數和注釋的意思. http://translate.google.com/translate_t?langpair=de|en
在线翻译 谁翻译一下呀,,,顶了! 德语的,我那天看这个程序,用GOOGLE的在线翻译先翻译成英语,再翻译成中文,麻烦死了 可以直接翻译的啊,德语到中文 楼上的
页:
[1]