24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

Тахометр на ATtiny2313

Здесь только проекты на ATtiny
Post Reply
User avatar
7-clown
Пробегал мимо
Posts: 9
Joined: 15 Dec 2013 20:33
Location: СТР
Contact:

Re: Тахометр на ATtiny2313

Post by 7-clown »

Прототип...

Добавлено спустя 3 часа 21 минуту 15 секунд:
Вот...
Attachments
270920141009.jpg
270920141011.jpg
270920141013.jpg
270920141015.jpg
Ashatshem
Частенько бываю
Posts: 30
Joined: 07 Feb 2013 09:38

Re: Тахометр на ATtiny2313

Post by Ashatshem »

Anderer wrote:hardlock, большое спасибо за устройство. Сегодня собрал и проверил от генератора. Работает без глюков :) Живьем, к сожалению пока проверить не могу, как назло снова ударили морозы :(
Видео работы:
http://youtu.be/V-FDOQRnYO4
А исходник с эффектом при запуске есть у кого? А то у меня плата полностью своя, распиновка вообще другая...

Добавлено спустя 1 час 35 минут 51 секунду:
Уже сам нашёл, как переделать тоже.
User avatar
hardlock
Администратор
Posts: 4003
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Тахометр на ATtiny2313

Post by hardlock »

beloff12 wrote:Доброе время суток. Наткнулся на Ваш проект по тахометру. У меня вопрос, если Вас не затруднит. На схеме указан контроллер AT90S2313, которых у меня имеется несколько штук. Я знаю, что это аналог ATtiny2313, но полностью ли совместима Ваша прошивка для обоих этих контроллеров, а главное для AT90 фьюзбиты выставляются также, как Вы указали в статье, или есть нюансы?
Спасибо за ответ.
1. Прочитайте, пожалуйста объявление вверху страницы и дальше вопросы задавайте в теме.
2. Компилировалась поод тиню, работоспособность на АТ90 не гарантируется, но теоретически 98% вероятности. Можно и перекомпилировать, указав другой контроллер
3. Фьюзов у АТ90 нету...
beloff12
Пробегал мимо
Posts: 4
Joined: 06 Oct 2014 10:27

Re: Тахометр на ATtiny2313

Post by beloff12 »

Я прошу прощения, первый раз в форуме, не прочитал шапку. С AT90 никогда не сталкивался, потому задал вопрос о фьюзах. Дело в том, что я далек от программирования и если Вам не сложно, перекомпилируйте, пожалуйста, под AT90, а выложите либо здесь, либо скините мне в личку.
Спасибо!
Ashatshem
Частенько бываю
Posts: 30
Joined: 07 Feb 2013 09:38

Re: Тахометр на ATtiny2313

Post by Ashatshem »

Интересно, если в прошивке указать что кварц 4, впаять на самом деле 8, вместо "одна катушка" указать что "две катушки". Подсоединив тахометр к одной катушке на 4 горшковом четырёхтактнике, получим ли точное кол. оборотов но с удвоенной скоростью обработки?
propell_ant
Живу тут
Posts: 490
Joined: 03 Jun 2014 09:22

Re: Тахометр на ATtiny2313

Post by propell_ant »

Ashatshem wrote:Интересно, если в прошивке указать что кварц 4, впаять на самом деле 8, вместо "одна катушка" указать что "две катушки". Подсоединив тахометр к одной катушке на 4 горшковом четырёхтактнике, получим ли точное кол. оборотов но с удвоенной скоростью обработки?
Да. Но зачем?
User avatar
hardlock
Администратор
Posts: 4003
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Тахометр на ATtiny2313

Post by hardlock »

beloff12 wrote: если Вам не сложно, перекомпилируйте, пожалуйста, под AT90
мне не сложно, но нету возможности.
Ashatshem
Частенько бываю
Posts: 30
Joined: 07 Feb 2013 09:38

Re: Тахометр на ATtiny2313

Post by Ashatshem »

propell_ant wrote:Да. Но зачем?
Увеличить скорость обработки, уменьшить запаздывание отображения.
beloff12
Пробегал мимо
Posts: 4
Joined: 06 Oct 2014 10:27

Re: Тахометр на ATtiny2313

Post by beloff12 »

Уважаемые форумчане, огромная просьба к тем, кто может перекомпиликовать прошивку ATtiny2313 для AT90S2313-10SI. Помогите, пожалуйста.
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Тахометр на ATtiny2313

Post by IYra »

beloff12 wrote:перекомпиликовать прошивку ATtiny2313 для AT90S2313-10SI.
Вот выкладываю архив. Там подкорректированный проект и два хекса для ОА и ОС. Кварц - 4 Мгц.
в Протеусе вроде работает
Attachments
Тахометр_AT90.rar
(9.13 KiB) Downloaded 397 times
beloff12
Пробегал мимо
Posts: 4
Joined: 06 Oct 2014 10:27

Re: Тахометр на ATtiny2313

Post by beloff12 »

Огромное спасибо, IYra. Попробую прошить. Еще один вопрос. Я впервые сталкиваюсь с программированием АТ90. В Code Vision есть параметр SCK Freq. По умолчанию он стоит на максимуме - 460800. Здесь нужно что-то менять, или оставлять как есть?
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Тахометр на ATtiny2313

Post by IYra »

beloff12 wrote: В Code Vision есть параметр SCK Freq. По умолчанию он стоит на максимуме - 460800. Здесь нужно что-то менять, или оставлять как есть?
Из Code Vision не прошивал. Пользуюсь программатором UNIPROF. Поэтому подсказать не смогу
beloff12
Пробегал мимо
Posts: 4
Joined: 06 Oct 2014 10:27

Re: Тахометр на ATtiny2313

Post by beloff12 »

У меня программатор под USB, а насколько я помню, UNIPROF работает только с LPT и COM портами.
this4me
Пробегал мимо
Posts: 5
Joined: 29 Sep 2014 22:13

Re: Тахометр на ATtiny2313

Post by this4me »

Добрый день. Переделываю Ваш исходник на спидометр. Начинаю измерять частоты (генерирую звуковой картой компа) - получаю нестабильные показания. (при 100 Гц получаю от 100 до 110)
Может ли прошивка обеспечить стабильность измерений малых частот (до 200 Гц) или просто у меня нестабильный источник?
Либо что необходимо изменить в исходниках?
Спс!
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Тахометр на ATtiny2313

Post by IYra »

this4me wrote: Начинаю измерять частоты (генерирую звуковой картой компа) - получаю нестабильные показания. (при 100 Гц получаю от 100 до 110)
или просто у меня нестабильный источник?
А если попробовать подключить к 220в/50гц через понижающий трансформатор
this4me
Пробегал мимо
Posts: 5
Joined: 29 Sep 2014 22:13

Re: Тахометр на ATtiny2313

Post by this4me »

Трансформатора нет под руками. Вечером возьму осциллограф и буду точно измерять частоту от звуковой платы. (раньше баловался ардуиной и там частотомер стабильно работал, но был другой комп)
Меня интересует вопрос - сможет ли обработчик прерывания interrupt [EXT_INT0] void RPM_PULSE_interrupt(void) точно и стабильно измерять частоту от 1 Гц до 300-400 Гц?
И если есть возможность построчно прокомментировать код, которым можно повлиять на измерение для моего случая
interrupt [EXT_INT0] void RPM_PULSE_interrupt(void)
{
long lTmp;

GIMSK &= ~0x40;

if(btFirstLowRateFlash)
{
// Первый импульс, сбрасываем счетчик периода и
// счетчик импульсов
wTimerOvfCnt = 0;
wFlashCnt = 0;
TCNT0 = 0;
TIFR = 0x02;
TCCR0B = 0x03; // FCK / 64 ( 62.5 KHz )
TCNT0 = 0;
TIMSK |= 0x02; // Разрешаем прерывания от TMR0

btFirstLowRateFlash = FALSE;
}
else
{
wFlashCnt++;
// Проверяем, не пора ли закончить измерения
if( wTimerOvfCnt > TIMER_OVF_ENOUGHT )
{
TCCR0B = 0; // Останавливаем TMR0
GIMSK &= 0x40; // Запрещаем прерывания от INT0
TIMSK &= ~0x02; // Запрещаем прерывания от TMR0
if(TIFR & 0x02)
wTimerOvfCnt++; // Учитываем возможность переполнения

lTmp = (62500L * (long)wFlashCnt);
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
// lTmp /= byBladeCnt;
wRpm = lTmp;

// Перезапускаем измерения
btFirstLowRateFlash = TRUE;

wTimerOvfCnt = 0;
TCNT0 = 0;
TCCR0B = 0x03; // FCK / 64 ( 62.5 KHz )
TCNT0 = 0;
TIFR = 0x02;
TIMSK |= 0x02; // Разрешаем прерывания от TMR0

// GIFR = 0x40;

}
}
EIFR = 0x40;
GIMSK |= 0x40;
}
Добавлено спустя 6 минут 13 секунд:
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
Делит длительность для получения частоты?
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Тахометр на ATtiny2313

Post by IYra »

this4me wrote:Трансформатора нет под руками.
Тогда в Протеусе. В коде все вроде правильно. Надо только еще округление до 10 убрать.
В приложении подправленный проект и протеус.
Погонял немного. Меряет частоту нормально
Attachments
Частотомер.rar
(27.23 KiB) Downloaded 344 times
propell_ant
Живу тут
Posts: 490
Joined: 03 Jun 2014 09:22

Re: Тахометр на ATtiny2313

Post by propell_ant »

Делит длительность для получения частоты?
неа

Code: Select all

 //wFlashCnt умножили на частоту 62500 - получили количество принятых импульсов за время (см. ниже)
//результат умножили на 60 - заранее переведем в импульсы в минуту
lTmp = (62500L * 60L * (long)wFlashCnt);
// результат разделим на точное время, равное количеству переполнений таймера умноженных (<<8) на 256 плюс количество отсчетов с последнего переполнения 
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
//делим на количество импульсов на один оборот вала
lTmp /= byBladeCnt;
//результат отдаем на отображение
wRpm = lTmp;
еще придется поправить константу NO_PULSES_INTERVAL, сейчас она настроена на 200 и сброс счетчика происходит каждые 800 мс (примерно), тебе нужно где-то каждые 2с (с запасом), это будет

Code: Select all

#define NO_PULSES_INTERVAL  500UL
У меня где-то есть прошивка под твои частоты, устанешь возиться - пиши в личку.
this4me
Пробегал мимо
Posts: 5
Joined: 29 Sep 2014 22:13

Re: Тахометр на ATtiny2313

Post by this4me »

Заголовок: Тахометр на ATtiny2313
propell_ant wrote:
Делит длительность для получения частоты?
неа

Code: Select all

 //wFlashCnt умножили на частоту 62500 - получили количество принятых импульсов за время (см. ниже)
//результат умножили на 60 - заранее переведем в импульсы в минуту
lTmp = (62500L * 60L * (long)wFlashCnt);
// результат разделим на точное время, равное количеству переполнений таймера умноженных (<<8) на 256 плюс количество отсчетов с последнего переполнения 
lTmp /= ((wTimerOvfCnt << 8) + TCNT0);
//делим на количество импульсов на один оборот вала
lTmp /= byBladeCnt;
//результат отдаем на отображение
wRpm = lTmp;
еще придется поправить константу NO_PULSES_INTERVAL, сейчас она настроена на 200 и сброс счетчика происходит каждые 800 мс (примерно), тебе нужно где-то каждые 2с (с запасом), это будет

Code: Select all

#define NO_PULSES_INTERVAL  500UL
У меня где-то есть прошивка под твои частоты, устанешь возиться - пиши в личку.
У меня где-то есть прошивка под твои частоты, устанешь возиться - пиши в личку.
Пока я занимался блоком и прошивкой, то мой товарищ делал задающий шкив на кардан. Сделал 7 зубьев для датчика :) Частота датчика поднялась в 7 раз. Увеличил количество пропусков для отображения - показания стали более плавные. - в принципе работает.

Что изменил я - Убрал из (((((lTmp = (62500L * 60L * (long)wFlashCnt);)))) 60L ( а что изначает буква L?), убрал делитель lTmp /= byBladeCnt; и в конце умножил на нужный коэффициент 0.88. - из оборотов/мин получил скорость км/час. - как то коряво.

Если быть правильным то для измерения скорости нужно зная количество (62500L * (long)wFlashCnt); импульсов разделить на время ((wTimerOvfCnt << 8) + TCNT0); и умножить на дистанцию колеса между импульсами датчика? (потом преобразовать в км/час)

ЗЫ А что такое за число присвоено #define NO_PULSES_INTERVAL 500UL Что за буквы?
User avatar
hardlock
Администратор
Posts: 4003
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Тахометр на ATtiny2313

Post by hardlock »

L - тип long, UK - unsigned long. Это надо, чтобы компилятор не обрезад результат до более мелкого типа.
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Тахометр на ATtiny2313

Post by IYra »

this4me wrote:
Частота датчика поднялась в 7 раз.

Code: Select all

            Tmp = (282857L * (long)wFlashCnt );      //   625000 * 0.88 * 3600 = 198000/7 = 282857  
            lTmp /= ((wTimerOvfCnt << 8) + TCNT0);    //   Скорость с десятыми
            // Округляем
            wRpm = lTmp % 10;
            lTmp /= 10 ;
            if (wRpm>4) lTmp++ ;
            wRpm = lTmp;
У меня так получилось
this4me
Пробегал мимо
Posts: 5
Joined: 29 Sep 2014 22:13

Re: Тахометр на ATtiny2313

Post by this4me »

Здравствуйте! Долго не отвечал - был в командировке.
Спидометр поставил. С моим вариантом куска кода. Скорость меряет отлично - десятые ( с некоторой кратностью), благодаря большому периоду обновления (30) значения не скачут, но и оперативно обновляется.
Схему и исходник использовал с соседней темы тахометра с светодиодами. Сделал на каждый светодиод по 1 км/час. Плату переразвёл для корпуса z-29. Могу скинуть плату. Фотографий не делал.
Большое спасибо всем причастным!
ПыСы hardlock, так как своё устройство пошло в коммерцию то считаю справедливым поддержать проект. Тебе будет приятно, и мне ещё обращаться за помощью. Куда отблагодарить?
kishy
Пробегал мимо
Posts: 1
Joined: 22 May 2013 17:51
Location: Сумы

Re: Тахометр на ATtiny2313

Post by kishy »

Собрал тахометр с авторской прошивкой, подключил ( клема К - вывод конца первичной обмотки катушки Ваз 2109, поправте если нужно не туда ), на холостых показывает 850-950, при этом могут проскакивать и "левые значения", при увеличении оборотов двигателя показания падают до 200 - 300. Подскажите в чем искать причину, и что сделать для более устойчивых показаний.

Как переделать прошивку автора 7-clown для общего катода и 1 катушки?
7-clown » 22 сен 2014 17:32
Разрешите предложить свой вариант прошивки для данного устройства. Все та же прошивка, но просто я добавил несколько строк помехоустойчивости, путем замера 3 импульсов подряд и проверкой их корректности. Также, ниже 600 оборотов показывает прочерки, сигнализируя о не работающем двигателе. Обновление дисплея сделал не по таймеру, а по условию разности 2 последовательных замеров и при отличии больше чем на 50 - обновлени
Wanderer123
Пробегал мимо
Posts: 6
Joined: 19 Nov 2014 15:08

Re: Тахометр на ATtiny2313

Post by Wanderer123 »

Здравствуйте! Собрал тахометр, прошил на общий К, выставил фьюзы вроде все правильно, но при включении на одну секунду горит 0 а потом начинает показывать странные значения, вот видео
User avatar
hardlock
Администратор
Posts: 4003
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Тахометр на ATtiny2313

Post by hardlock »

Wanderer123, ничего подобного в моей прошивке быть не может пробуйте прошить ещё раз, другую прошивку...
Post Reply