Отправлено
Kosha 11 февраля 2008 г. 10:41
В ответ на: Вариации на тему Си (+) отправлено
Aleksey75 11 февраля 2008 г. 10:05
[code] TX_BIT(start_1,start_2);
if (repit==1) { TX_BIT(start_1,pause); } else { for (N_bit=34;N_bit>0;N_bit--) { if (tx_byte & (1UL<< (N_bit-2) )) // Выполняем если текущий бит "1" TX_BIT(st_bit,one); else TX_BIT(st_bit,zero); } TX_BIT(st_bit,pause); } void TX_BIT(unsigned char bit_stat_1, unsigned char bit_stat_2) { number_ovf=0; // обнуляем счётчик mod_ON // Включили модуляцию out_led=1; // Высокий уровень управления светодиодом Start_Timer // Запуск таймера
number_ovf=0; // обнуляем счётчик while (number_ovf<bit_stat_1); // передаём первую часть бита #asm ("nop"); number_ovf=0; // обнуляем счётчик mod_OFF // Включили модуляцию out_led=0; // Низкий уровень управления светодиодом while (number_ovf<bit_stat_2); // передаём вторую часть бита } [/code]