Таймер с дискретностью 0,1 с
Таймер с дискретностью 0,1 с
Здраствуйте, интересует следующее реально ли подправить прошивку этого http://bezkz.su/publ/300411-42-1-0-411.html таймера чтобы была дискретность 0,1с и максимальное время 99с. Хотя уже сам понял что нужно будет добавлять еще один разряд индикатора, может кто видел где нить подобную схему с исходником чтобы подправить можно было. Предполагаемый пик 628 или 84.
Уже задолбался искать подобное прошу помощи.
Уже задолбался искать подобное прошу помощи.
- Вложения
-
- timer.zip
- (38.33 КБ) 212 скачиваний
- Реклама
Re: Таймер с дискретностью 0,1 с
Вот нашел по моему более подходящий вариант http://microsxema.ru/archives/283
- Вложения
-
- projects.rar
- (175.86 КБ) 199 скачиваний
- dr.doc
- Это не хвост, это антенна
- Сообщения: 1368
- Зарегистрирован: Вс мар 28, 2010 12:52:22
- Откуда: Беларусь
Re: Таймер с дискретностью 0,1 с
Так по второй ссылке таймер секундный, а вы вели речь о 0,1 секунде.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Re: Таймер с дискретностью 0,1 с
Меня интересует можно ли в исходниках по первой либо второй ссылке подправить чтобы таймер имел дискретность 0,1с. По второй мне кжется будет проще т.к. там уже есть 3х разрядный индикатор, в котором третий разряд будет считать десятые части секунды, както так я себе это представляю, но вот че там править в исходнике незнаю.
- dr.doc
- Это не хвост, это антенна
- Сообщения: 1368
- Зарегистрирован: Вс мар 28, 2010 12:52:22
- Откуда: Беларусь
Re: Таймер с дискретностью 0,1 с
Строки 259, 261 проекта. Но! это скорее всего, т.к. пишу я на ассемблере, а СИ знаю только очень поверхностно. Да и децимальную точку придется ведь зажигать, а если индикация динамическая, то это уже несколько сложней. Удачи вам.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
- Реклама
Re: Таймер с дискретностью 0,1 с
Будем пробовать чето длелать, но завтра,утро вечета мудреней. Я так понял нужно править здесь но никак не пойму зависимость этих циклов которые 65536 от частоты кварца в схеме который 8 МГц
Код: Выделить всё
if(TMR1IE&&TMR1IF)
{
// uses 1 variable; unsigned long bres
// gets here every TMR1 16bit int (every 65536 ticks)
TMR1IF = 0;
Bres += 65536; // add 65536 ticks to bresenham total
if(Bres >= 2000000) // if reached 1 second!
{
Bres -= 2000000; // subtract 1 second, retain error
if(Sec_i)
{
Sec_i--;
}
else
{
- dr.doc
- Это не хвост, это антенна
- Сообщения: 1368
- Зарегистрирован: Вс мар 28, 2010 12:52:22
- Откуда: Беларусь
Re: Таймер с дискретностью 0,1 с
65536 - это разрядность таймера в МК, а 2 миллиона - это 8 МГц/4 - тактовая частота шины.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Re: Таймер с дискретностью 0,1 с
Здесь поищите.sanya123 писал(а):...дискретность 0,1с и максимальное время 99с...Уже задолбался искать подобное прошу помощи.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Таймер с дискретностью 0,1 с
Этот кусок кода, есть ничто иное как создание секундных интервалов по алгоритму Брезенхема. К индикации никакого отношения не имеет.sanya123 писал(а):Будем пробовать чето длелать, но завтра,утро вечета мудреней. Я так понял нужно править здесь но никак не пойму зависимость этих циклов которые 65536 от частоты кварца в схеме который 8 МГцКод: Выделить всё
if(TMR1IE&&TMR1IF) { // uses 1 variable; unsigned long bres // gets here every TMR1 16bit int (every 65536 ticks) TMR1IF = 0; Bres += 65536; // add 65536 ticks to bresenham total if(Bres >= 2000000) // if reached 1 second! { Bres -= 2000000; // subtract 1 second, retain error if(Sec_i) { Sec_i--; } else {


