|
Простой делитель на простом МК ATMEL?, нужно состряпать делитель макс 10Гц на 10, 4 канала. |
|
|
|
 |
Ответов
|
Apr 17 2008, 11:27
|

Частый гость
 
Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071

|
Я наверное изначально неправильно вопрос поставил, считать надо не количество изменений на входе а именно количество импульсов, т.е. физического как он есть и соответственно событие либо по переднему либо по заднему фронту. Если выбрать по переднему фронту то код надо менять так. Далее импульс на выходе будем формировать скажем после прихода 6, а скидывать с 10 т.е. ширина импульса на выходе будет всегда в диапазоне времени от 1-го до 10-го импульса вне зависимости от частоты и если вдруг питание пропадет то округление будет типа математичского (практически если брать 5 а не 6). Если неправ поправьте. Код void main(void) { // Инициализация x1= IN1; c1=0; OUT1= 0; x2= IN2; c2=0; OUT2= 0; x3= IN3; c3=0; OUT3= 0; x4= IN4; c4=0; OUT4= 0;
//................... // Делитель на 10 if(x1 != IN1)&(IN1==1) { x1= IN1; ++c1; if(c1 == 6) { OUT1=1; } if(c1 == 10) { c1= 0; OUT1=0; } } if(x2 != IN2)&(IN2==1) { x2= IN2; ++c2; if(c2 == 6) { OUT2=1; } if(c2 == 10) { c2= 0; OUT2=0; } }
if(x3 != IN3)&(IN3==1) { x3= IN3; ++c3; if(c3 == 6) { OUT3=1; } if(c3 == 10) { c3= 0; OUT3=0; } } if(x4 != IN4)&(IN4==1) { x4= IN4; ++c4; if(c4 == 6) { OUT4=1; } if(c4 == 10) { c4= 0; OUT4=0; } }
//................
}
Сообщение отредактировал The Fresh - Apr 17 2008, 11:30
|
|
|
|
Сообщений в этой теме
The Fresh Простой делитель на простом МК ATMEL? Apr 9 2008, 16:05 domowoj Дольше искать.
Тупо опрашиваешь 4 входа, фиксируеш... Apr 9 2008, 16:27 The Fresh На каком самом простом AVR можно организовать, так... Apr 11 2008, 13:58 domowoj На любом где входов-выходов больше 8-ми,
например... Apr 11 2008, 15:01 The Fresh Спасибо. Скачал AVR32Studio и AVRStudio 4.13, на ч... Apr 11 2008, 15:19 defunct Цитата(The Fresh @ Apr 11 2008, 17:19) Ск... Apr 11 2008, 22:30 Палыч Вам нужен транслятор языка С для AVR. Если Вы - то... Apr 11 2008, 15:25 The Fresh Понятно, что на асме быстрее будет в плане выполне... Apr 11 2008, 15:34 The Fresh Спасибо. Еще один небольшой вопрос. Как сделать по... Apr 13 2008, 05:10 domowoj Не понял. Apr 13 2008, 05:21 The Fresh Например на первый счетный пришло 10 импульсов, сл... Apr 13 2008, 07:06 tazik Подойдет, например ATtiny26 - 2 порта по 8 I/O, вн... Apr 13 2008, 11:06 Палыч Цитата(The Fresh @ Apr 13 2008, 10:06) На... Apr 14 2008, 14:41 Reton Можно и так, но лучше output1++; перенести из main... Apr 13 2008, 13:46 domowoj Чтобы увеличить реакцию на входные воздействия мож... Apr 13 2008, 13:57 The Fresh ЦитатаНе совсем понятно: зачем формируется единица... Apr 14 2008, 19:06 domowoj Цитата(The Fresh @ Apr 15 2008, 02:06) Эт... Apr 15 2008, 00:59  domowoj Цитата(domowoj @ Apr 15 2008, 07:59) Если... Apr 18 2008, 12:01 Палыч Цитата(The Fresh @ Apr 14 2008, 22:06) Эт... Apr 15 2008, 04:52 The Fresh Нужен простой декадный делитель на 4 канала, входн... Apr 15 2008, 13:15 Палыч Ну, так оно и получается. Вам и никто не советовал... Apr 15 2008, 13:34  domowoj Цитата(Палыч @ Apr 15 2008, 20:34) Если в... Apr 15 2008, 13:56   Палыч Цитата(domowoj @ Apr 15 2008, 16:56) Это ... Apr 15 2008, 15:12  domowoj Цитата(Палыч @ Apr 15 2008, 20:34) после ... Apr 15 2008, 15:37   tazik ЦитатаНужен простой декадный делитель на 4 канала,... Apr 16 2008, 04:49 Палыч После Ваших объяснений стало ещё более непонятно -... Apr 17 2008, 12:01 The Fresh Вобщем вот Apr 18 2008, 11:40 Палыч Цитата(The Fresh @ Apr 18 2008, 14:40) Во... Apr 18 2008, 12:11 The Fresh До конца не разобрал код. Меня смутило то что в с... Apr 18 2008, 15:12 Палыч Отслеживание изменений имеет один изъян - устройст... Apr 18 2008, 15:37 Laserr А я делал делитель на 10000 на асме...
точнее, дел... Apr 18 2008, 16:07 The Fresh Ok Apr 18 2008, 17:27
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|