Например TDA7294

Форум РадиоКот • Просмотр темы - часы на atmega16
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 21:34:08

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: часы на atmega16
СообщениеДобавлено: Пн ноя 06, 2017 13:03:17 
Родился

Зарегистрирован: Пн ноя 06, 2017 12:52:51
Сообщений: 5
Рейтинг сообщения: 0
З0дравствуйте. У меня возникла проблема с написанием часов на atmega16.
Я хочу сделать кнопку Start_stop в функции инициализации таймера. Но он не работает.
void timer_ini(void)
{

TCCR1B |= (1<<WGM12); // устанавливаем режим СТС (сброс по совпадению)

if (!(PORTA&0b00000100))
{
start_stop=0;
if (start_stop==0)
{
TCCR1B |= (0<<CS12);//установим делитель.
}
}
if ((PORTA&0b00000100))
{
start_stop++;
if (start_stop==1)
{
TCCR1B |= (1<<CS12);//установим делитель.
}
}

TIMSK |= (1<<OCIE1A); //устанавливаем бит разрешения прерывания 1ого счетчика по совпадению с OCR1A(H и L)



OCR1AH = 0b01111010; //записываем в регистр число для сравнения
OCR1AL = 0b00010010;
//TCCR1B |= (1<<CS12);//установим делитель.
}


Или нужно этот цикл писать не в этой функции?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: часы на atmega16
СообщениеДобавлено: Пн ноя 06, 2017 13:41:13 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
NIk_9 писал(а):
Но он не работает.
Кто не работает ? Кнопка ? Или таймер ?
Если кнопка, то почему "Он" ? Если таймер, то причём тут кнопка ?

NIk_9 писал(а):
Или нужно этот цикл писать не в этой функции?
Ну, вообще то, это Вам решать, как создателю программы. Логика работы устройства только Вам известна.

NIk_9 писал(а):
Код:
start_stop=0;
if (start_stop==0)
Прикольно :)
Где логика, сначала сбрасывать переменную в ноль, потом проверять её на этот ноль ? :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: часы на atmega16
СообщениеДобавлено: Пн ноя 06, 2017 13:52:26 
Родился

Зарегистрирован: Пн ноя 06, 2017 12:52:51
Сообщений: 5
Рейтинг сообщения: 0
Счетчик работает. Не работает кнопка.
в цикле я написал что если на PORTA 0b00000001 приходит земля то в значение переменной я занесу ноль и таймер перестанет считать.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: часы на atmega16
СообщениеДобавлено: Пн ноя 06, 2017 14:34:51 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14056
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Остановка делается или по предделителю таймера (запись соответствует отключенному от предделителя входу таймера) или спецфлагом остановки/сброса предделителя таймера.
:roll:


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: часы на atmega16
СообщениеДобавлено: Пн ноя 06, 2017 14:45:31 
Родился

Зарегистрирован: Пн ноя 06, 2017 12:52:51
Сообщений: 5
Рейтинг сообщения: 0
Я попытался сделать вот так но все равно не работает.
void timer_ini(void)
{

TCCR1B |= (1<<WGM12); // устанавливаем режим СТС (сброс по совпадению)
TCCR1B |= (i<<CS12);
TIMSK |= (1<<OCIE1A); //устанавливаем бит разрешения прерывания 1ого счетчика по совпадению с OCR1A(H и L)
OCR1AH = 0b01111010; //записываем в регистр число для сравнения
OCR1AL = 0b00010010;
//TCCR1B |= (1<<CS12);//установим делитель.
}

//----------

while(1)
{
if (!(PORTA&0b00000001))
{
start_stop=0;
if (start_stop==0)
{
i=0;
}
}
if ((PORTA&0b00000100))
{
if (start_stop==1)
{
i=1;
}
}
if (start_stop>1)
{
if (i>1)
{
i=0;
start_stop=0;
}
}
}
}


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: часы на atmega16
СообщениеДобавлено: Пн ноя 06, 2017 17:15:40 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
приведите код целиком. И суньте его в теги code и spoiler.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: часы на atmega16
СообщениеДобавлено: Вт ноя 07, 2017 09:12:15 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 06, 2010 10:01:46
Сообщений: 551
Рейтинг сообщения: 0
1. Вам уже сказали, где неверный код, почему в новом коде вы эту лажу повторили?
2. Где изменяется переменная start_stop и как она может стать >1?
3. Вы планируете использовать таймер еще для какой-то другой цели? Если нет, то оставьте функцию инициализации в покое, пусть себе считает. В обработчике прерывания просто при старте нужно обнулить переменную, и с ней уже работать. Всю обработку нажатий кнопок я бы сделал в главном цикле, или в отдельной процедуре, которая из него вызывается.
4. Вам очень не помешает посмотреть на исходные коды, которые были написаны до вас (в аналогичных разработках). В сети их полно. Там найдёте, как и старт сделать, и стоп.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y