Для наглядности выложил проект в протеусе во вложении.
Проблема в том что мне нужно в зависимости от выбранных значений переменных z и k получить на выходе сигнал с определенной частотой и количеством импульсов.
Если пишу просто
Спойлер
Код: Выделить всё
ISR (TIMER1_COMPA_vect)
{
d=0;
if((z==5) &(k==1)){d=5;}
if( c<d*4){
switch(b)
{
case 0:PORTC =(1<<0)|(0<<1); break; // светодиод 1 включить// светодиод 2 выключить
case 1:PORTC =(1<<0)|(1<<1); break; // светодиод 1 включить // светодиод 2 включить
case 2: PORTC =(0<<0)|(1<<1); break; // светодиод 1 выключить // светодиод 2 включить
case 3: PORTC =(0<<0)|(0<<1); break; // светодиод 1 выключить // светодиод 2 выключить
}
b++;
b%=4;
c++;
}
}
Спойлер
Код: Выделить всё
ISR (TIMER1_COMPA_vect)
{
d=0;
if((z==5) &(k==1)){d=5;}
if((z==5) &(k==10)){d=50;}
if((z==5) &(k==50)){d=250;}
if((z==5) &(k==100)){d=500;}
if((z==5) &(k==200)){d=1000;}
f( c<d*4){
switch(b)
{
case 0:PORTC =(1<<0)|(0<<1); break; // светодиод 1 включить// светодиод 2 выключить
case 1:PORTC =(1<<0)|(1<<1); break; // светодиод 1 включить // светодиод 2 включить
case 2: PORTC =(0<<0)|(1<<1); break; // светодиод 1 выключить // светодиод 2 включить
case 3: PORTC =(0<<0)|(0<<1); break; // светодиод 1 выключить // светодиод 2 выключить
}
b++;
b%=4;
c++;
}
}
Добавлено after 4 hours 12 minutes 59 seconds:
Запустил проект, буду весьма благодарен если проверите и дадите свои советы по оптимизации..
- Вложения
-
- forum.rar
- Рабочий проект
- (28.28 КБ) 125 скачиваний
-
- dinamic_CC_test.rar
- Исходный код и проект в Proteus
- (29.16 КБ) 124 скачивания


