Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ВстраиваСмыС систСмы. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства 68HC12/HCS12 с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языка Π‘Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 111

Автор Π‘Ρ‚ΠΈΠ²Π΅Π½ Π‘Π°Ρ€Ρ€Π΅Ρ‚Ρ‚

                // управлСния для Π–ΠšΠ˜

}


//********************************************************************

//RTI_isr: ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСрывания ΠΏΠΎ RTI

//********************************************************************

void RTI_isr(void) {

 unsigned int new_count;

 unsigned int pulse_count;

 float max_count = 65535.0;

 new_count = PACNT; //пСрСдаСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ число ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ², записанноС Π² PA

 if (new_count > old_count) //опрСдСляСтся ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ числа ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ²

  pulse_count = new_count - old_count;

 else pulse_count = (unsigned int)(max_count-(float)(old_count = new_count));

 RTI_int_count = RTI_int_count + 1;// измСняСтся ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠ΅ счСтчика

                                   //RTI-ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

 if (RTI_int_count == 10) // измСняСтся ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π–ΠšΠ” Ρ‡Π΅Ρ€Π΅Π·

                          // ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

 {

  display_count_LCD(pulse_count); //измСняСтся Π–ΠšΠ˜

  RTI_int_count = 0; //сбрасываСтся счСтчик ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ RTI

 }

 old_count = new_count;

 RTIFLG = 0x80; //сбрасываСтся RTI

}


// ********************************************************************

// initialize_RTI:ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ рСгистры, связанныС с RTI

// - рСгистр RTICTL

// -- Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ модуля RTI установкой Π±ΠΈΡ‚Π° RTIE

// -- ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ RTI Π² 32.768 мс

// - сбрасываСт Π±ΠΈΡ‚ RTIF Π² рСгистрС Ρ„Π»Π°Π³ΠΎΠ² (RTIFLG)

// ********************************************************************

void initialize_RTI(void) {

 RTICTL = 0x86; // устанавливаСтся ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ RTI Π½Π° 32.768 мс

 RTIFLG = 0x80; //сбрасываСтся Ρ„Π»Π°Π³ RTIF

}


// ********************************************************************

//initialize_PA: инициализация модуля аккумулятора ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ²

// ********************************************************************

void initialize_PA(void) {

 TIOS = 0x00; // ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°Π½Π°Π» 7 для Ρ€Π°Π±ΠΎΡ‚Ρ‹

 TCTL1 = 0x00; // счСтчика ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² оптичСского ΠΊΠΎΠ΄Π΅Ρ€Π°

 OC7M = 0x00;

 TSCR = 0x80; // устанавливаСт Π±ΠΈΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

 PACTL = 0x70; // Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ РА, Ρ€Π΅ΠΆΠΈΠΌ счСта событий,

               // ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°,

}


/********************************************************************/

/* initialize_LCD: ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π–ΠšΠ˜                                */

/* ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π½Π° Π–ΠšΠ˜ ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ управлСния   */

/* - PORTDLC[3]: линия управлСния RS Π–ΠšΠ˜                            */

/* - PORTDLC[2]: линия управлСния E для Π–ΠšΠ˜                         */

/* - PORTB: двунаправлСнная ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… для Π–ΠšΠ˜               */

/********************************************************************/

void initialize_LCD(void) {

 delay_5ms();

 delay_5ms();

 delay_5ms(); /*ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 15 мс ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π–ΠšΠ˜ */

 putcommands(0x38); /*Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… интСрфСйса 8 Π±ΠΈΡ‚ */

 delay_5ms(); /*Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° */

 putcommands(0x38); /*интСрфСйс Π² 8 Π±ΠΈΡ‚ */

 delay_100us(); /*Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° */

 putcommands(0x38); /* Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… интСрфСйса 8 Π±ΠΈΡ‚ */

 putcommands(0x38); /* интСрфСйс Π² 8 Π±ΠΈΡ‚ */

 putcommands(0x0C); /*Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ дисплСя */

 putcommands(0x01); /*очистка дисплСя */

 putcommands(0x06); /*установка Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° адрСса */

 putcommands(0x00);

 putcommands(0x00);

 putcommands(0xC0); /*курсор Π½Π° линию 2 знакомСсто 1 */

 putchars('R'); /* вывСсти "PRM" - ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ */

                /*Π² ΠΎΠ±/ΠΌΠΈΠ½ Π½Π° строку 2 Π–ΠšΠ˜ */

 putchars('P');

 putchars('M');

}


/********************************************************************/

/*putchars: функция посылаСт ASCII ΠΊΠΎΠ΄ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° Π–ΠšΠ˜            */

/********************************************************************/

void putchars(unsigned char c) {

 PORTB = c; /*вывСсти Π½Π° ΠΏΠΎΡ€Ρ‚ PORTB ΠΊΠΎΠ΄ символа */

 PORTDLC = PORTDLC|0x08; /*ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ RS Π² 1 для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… */

 PORTDLC = PORTDLC|0x04; /*ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ E Π² 1 */

 PORTDLC = 0x00; /* ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ E ΠΈ RS Π² 0 */

 delay_100us(); delay_100us();

}


/********************************************************************/

/*putcommands: функция посылаСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ управлСния Π–ΠšΠ˜              */

/********************************************************************/

void putcommands(unsigned char d) {

 PORTDLC = PORTDLC&0xF7; /*ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ RS Π² 0 для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ */

 PORTDLC = PORTDLC|0x04; /*ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ E Π² 1 */

 PORTDLC = 0x00; /* ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ E ΠΈ RS Π² 0 */

 delay_100us();

 delay_100us();

}


/********************************************************************/

/* delay_5ms: программная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° 5 мс                             */

/********************************************************************/

void delay_5ms(void) {

 int i;

 for (i=0; i<50; i++) {

  delay_100us();

 }

}


/********************************************************************/

/* delay_100us:программная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π² 100 мс                        */

/********************************************************************/

void delay_100us(void) {

 int i;

 for(i=0; i<800; i++) {

  asm("nop");/*Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ nΠΎΡ€ ассСмблСра Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 ΠΏΠ΅Ρ€ΠΈΠΎΠ΄*/

 }

}


/********************************************************************/

/* display_count_LCD: ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число Π² ASCII символ        */

/* для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° Π–ΠšΠ˜                                                */

/********************************************************************/

void display_count_LCD(unsigned int count) {

 unsigned int thousands_int;

 unsigned int hundreds_int;

 unsigned int tens_int;

 unsigned int ones_int;

 char thousands;

 char hundreds;

 char tens;

 char ones;

 /*Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·Π½Π°Ρ‡Π°Ρ‰ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ Π² дСсятичноС */

 /* Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ + 48, образуя ASCII ΠΊΠΎΠ΄ */

 thousands_int = count/1000;

 thousands = (char)(thousands_int + 48);

 /*Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·Π½Π°Ρ‡Π°Ρ‰ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ */

 /* Π² дСсятичноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ + 48, образуя ASCII ΠΊΠΎΠ΄ */

 hundreds_int = (count - thousands_int*1000)/100;

 hundreds = (char)(hundreds_int + 48);

 /*Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·Π½Π°Ρ‡Π°Ρ‰ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ */

 /* Π² дСсятичноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ + 48, образуя ASCII ΠΊΠΎΠ΄ */

 tens_int = (count - thousands_int*10 0 0 - hundreds_int*100)/10;

 tens = (char)(hundreds_int + 48);

 /*Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·Π½Π°Ρ‡Π°Ρ‰ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ */

 /* Π² дСсятичноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ + 48, образуя ASCII ΠΊΠΎΠ΄ */

 ones_int = (count-thousands_int*1000-hundreds_int*100-tens_int*10);

 ones = (char)(ones_int + 48);

 /*Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° Π–ΠšΠ˜*/

 putcommands(0x80); /*курсор Π–ΠšΠ˜ пСрСводится Π½Π° строку 1, ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ 1*/

 putchars(thousands);

 putchars(hundreds);

 putchars(tens);

 putchars(ones);

}

/********************************************************************/

/********************************************************************/

7.4.3. Анализ 

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассказали, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ вращСния двигатСля ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΅Π΅ Π² ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π°Ρ… Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ Π·Π°ΠΌΠΊΠ½Π΅ΠΌ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи. Для этого ΠΌΡ‹ сравним ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ вращСния с ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‚Π΅ΠΌ ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ коэффициСнт заполнСния ШИМ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ вращСния двигатСля Π½Π° ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ двигатСля.

Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ двигатСля Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ 1600 ΠΎΠ±/ΠΌΠΈΠ½. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ коэффициСнт заполнСния ШИМ для 1600 ΠΎΠ±/ΠΌΠΈΠ½. Из ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΌΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° (рис. 7.17) ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ для обСспСчСния скорости вращСния ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² 1600 ΠΎΠ±/ΠΌΠΈΠ½, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π½Π° Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ напряТСниС Π² 8 Π’. ΠŸΡ€ΠΈ ΠΏΠΈΡ‚Π°Π½ΠΈΠΈ двигатСля ΠΎΡ‚ источника Π² 12 Π’ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ коэффициСнт заполнСния ШИМ составит 66.7 % (8 Π’/ 12 Π’).

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ коэффициСнта заполнСния ШИМ Π² 66.7%, установим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ШИМ Π½Π° 256 Π΅Π΄ΠΈΠ½ΠΈΡ†, Π° коэффициСнт заполнСния ШИМ Π½Π° 172 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹.

Как ΠΌΡ‹ ΡƒΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ обсуТдСнии систСмы ШИМ, эти значСния ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² рСгистрах PWPER0 ΠΈ PWDTY0, соотвСтствСнно.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ сигнал управлСния ШИМ с частотой 976 Π“Ρ†. Для этого частоту Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ШИМ, Ρ€Π°Π²Π½ΡƒΡŽ 8 ΠœΠ“Ρ†, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° 32. ΠŸΡ€ΠΈ этом ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ частоту Π² 250 ΠΊΠ“Ρ† (ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ 4 мкс) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π΅ Π² качСствС ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ для систСмы ШИМ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π² 256 ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ², частота управлСния ШИМ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° 976 Π“Ρ† (ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ = 4 мкс/ΠΈΠΌΠΏΡƒΠ»ΡŒΡΓ—256 ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ²).

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ коэффициСнт заполнСния ШИМ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ 1600 ΠΎΠ±/ΠΌΠΈΠ½.

Π­Ρ‚Π° функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ установки скорости вращСния двигатСля.

/********************************************************************/

/*init_PWM(): инициализация модуля ШИМ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° 68HC12           */