Форум myROBOT.ru » Шаг за шагом » Программирование микроконтроллеров » плывут мозги уже.....

Страниц (4): « 1 2 3 [4]
 

46. lamakazzz - 01 Марта, 2010 - 23:53:13 - перейти к сообщению
Олег выкладывал полностью рабочий код на С, если хорошо поискать, то наёдете. написано для ATmega8 с кварцем 8МГц.
Если не ошибаюсь, статья тема называлась Помогите с таймером
(Добавление)
как найдете - прочтите всю ветку, чтобы понять всю суть. И обязательно посмотрите на ссылку, которую привел nest, там полный алгоритм, и есть формулы расчета для таймера
47. ОЛЕГ - 02 Марта, 2010 - 00:30:39 - перейти к сообщению
CODE:
#include <avr/io.h>
#include <avr/delay.h>
#include <avr/iom8.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define F_CPU 8000000UL // 8 MHz


volatile int modulation=7201; // модулятор


SIGNAL(SIG_OVERFLOW0)

{
TCNT0 = 0;


if(modulation<109)
{
PORTB ^= 0b00000010;
}

else
{
PORTB &= 0b00000000;
}


if(modulation<7200)
{modulation++;}

else
{
modulation=0;
}

}
}

void init_timer0 ()
{cli();
TCNT0 = 222;
TCCR0 = 1;
TIMSK = 1;
sei();
}



Как-то вот так.

Светодиод на ножке В1
48. ОЛЕГ - 02 Марта, 2010 - 22:50:06 - перейти к сообщению
Подумал над Вашим вариантом. Можно сделать вот так:

CODE:

while(1)
{

for (char a=0; a<100; a++)
{

for (char b=0; b<14; b++)
{PORTB = 0b00000010;}

for (char c=0; c<14; c++)
{PORTB = 0b00000000;}

}
}


Частота работы МК 8 мГц, частота фотоприемника 36 кГц, ИК-светодиод на ноге В1 (в данном примере). Длина пачки = а = 100, но можно любую.
(Добавление)
Сейчас попробовал. Запитал все от USB программатора. Длина пачки- 14 импульсов. МК тактируется внутренней цепочкой. ИК-светодиод TSAL5100 130мВт.
Девайс лупит через всю комнату.
49. rain_cbc - 03 Марта, 2010 - 03:31:09 - перейти к сообщению
спасибо))будем пробовать Улыбка