Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос по коду СИ(Таймер)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб апр 20, 2024 11:57:02

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


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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Чт янв 21, 2021 22:09:51 
Открыл глаза

Зарегистрирован: Вт сен 10, 2019 16:18:33
Сообщений: 64
Рейтинг сообщения: 0
Вопрос по таймеру,запускаю функцию Taimer_zaderhgka(); все работает,только мне надо несколько раз запускать ее в разных местах кода,естественно второй раз она не работает так как обнулил регистр TCCR1B,если я делаю вторую такую же функцию например Taimer_zaderhgka_1();только в этом регистре заново выставляю источник тактирования TCCR1B=0b00000010;,тобишь как я думаю запускаю таймер и после выполнения условия его опять обнуляю,вторая задержка работает,только вот работает не коректно,изредко через некоторое время на микросекунды еле заметно включается пин периодически,это в протэусе видно и в железе точно так же,я понимаю,что что-то не так делаю ввиду своей не грамотности в этом деле,пробовал всякие манипуляции с флагами и переменными адекватного ничего не получилось,подскажите пожалуйста как правильно запускать и останавливать один и тот же таймер несколько раз. МК атмега 328,другие таймеры будут использоваться для других дел

static void Taimer_zaderhgka(void)
{
if(PIND.4==0&&TCNT1L==0x00&&TCNT1H==0x00){PORTB.1=0;PORTB.2=0;PORTB.4=0;PORTB.3=0;}//
if(PIND.4==0&&TCNT1L==0x00&&TCNT1H==32)
{PORTB.1=1;PORTB.2=0;PORTB.4=0;PORTB.3=0;TCNT1L=0;TCNT1H=0;TCCR1B=0;}//#asm("cli")
//таймер дотикал до 32 включился пин 1 порта В,обнулили и выключили источник тактирования,что бы не мигал
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Чт янв 21, 2021 22:58:40 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Кто мешает каждый раз перед вызовом функции выставлять TCCR1B в нужное значение?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Чт янв 21, 2021 23:10:31 
Открыл глаза

Зарегистрирован: Вт сен 10, 2019 16:18:33
Сообщений: 64
Рейтинг сообщения: 0
я так и делал,но вторая задержка либо не работает,либо какая то из двух не коректно,если флагами блочить,ну я всякие варики попробовал,но чет не получается,не хватает грамотности в этом деле,в книжках не нашел решение данной проблемы,подмигивает изредко через некоторое время,с пин включает оптопару и через нее магнитный пускатель включается,когда это кратковременное включение пина через некоторое время начинается,то даже пускатель не успевает разомкнуть свои контакты,настолько мала и еле заметная,не мешает но смущает ппц,какое-то не верное написание кода


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Пт янв 22, 2021 00:36:56 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Предделитель сбрасывай.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Пт янв 22, 2021 00:53:12 
Открыл глаза

Зарегистрирован: Вт сен 10, 2019 16:18:33
Сообщений: 64
Рейтинг сообщения: 0
Сброшен TCCR1B=0;


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Пт янв 22, 2021 03:26:54 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
вторая задержка работает,только вот работает не коректно,изредко через некоторое время на микросекунды еле заметно включается пин
Каким боком пин может относиться к задержке ?
Вы смешали всё в кучу, отсюда и проблемы. Делайте задержку как отдельную единицу кода, а работу с портом - отдельно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Пт янв 22, 2021 08:15:15 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
А еще, код надо выкладывать вот так, а не так, как вы. Чтобы читать было можно:
Код:
static void Taimer_zaderhgka(void) {
  if (PIND.4 == 0 && TCNT1L == 0x00 && TCNT1H == 0x00) {
    PORTB.1 = 0;
    PORTB.2 = 0;
    PORTB.4 = 0;
    PORTB.3 = 0;
  }
  if (PIND.4 == 0 && TCNT1L == 0x00 && TCNT1H == 32) { //таймер дотикал до 32 включился пин 1 порта В,обнулили и выключили источник тактирования,что бы не мигал
    PORTB.1 = 1;
    PORTB.2 = 0;
    PORTB.4 = 0;
    PORTB.3 = 0;
    TCNT1L = 0;
    TCNT1H = 0;
    TCCR1B = 0;
  }
}


И пишите также, чтобы сами видели что где. Писанина в одну строчку - бред.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Пт янв 22, 2021 09:51:51 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 951
Рейтинг сообщения: 0
И пишите также, чтобы сами видели что где. Писанина в одну строчку - бред.

Не только бред, но и быдлокодинг. Неуважение ни себя, ни других.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Пт янв 22, 2021 10:07:29 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Сброшен TCCR1B=0;

В предделителе нет такого регистра.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Пт янв 22, 2021 10:48:29 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Вообще это делается не так. Высталвяется пин и запускается таймер в режиме CTC со счетом до нужного значения. А в прерывании выставляем порт назад как надо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Сб янв 23, 2021 08:45:10 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
Рекомендую почитать цикл статей Татарчевского. Применение
SWITCH технологии при разработке прикладного программного обеспечения для микроконтроллеров. На многое глаза раскроет. Сразу скажу, не бойтесь сложностей, поймёте потом, что на самом деле все просто.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Сб янв 23, 2021 09:47:27 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 1
Какое же неудачное и я бы даже сказал дурацкое название для статей о конечных автоматах на switch/case. Статьи с виду нормальные (мельком глянул первые 2 части), но название что-то прям совсем не о том... "SWITCH технологии" как-то ужасно звучит.
Мне кажется ТС рано в КА еще. Хотя бы с азами программирования для начала надо разобраться. Применение масок, нормальный стиль кода и т.д. Чтобы вместо вот этой простыни научиться писать PORTB &= _BV(PB0)|_BV(PB1)|_BV(PB2)|_BV(PB3), и т.д. Потом с таймерами разобраться, режимами и практическому применению. А уже потом, когда и если понадобится что-то более сложное, где нужно реализовывать несколько задач - тогда уже и почитать что-нибудь про КА.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по коду СИ(Таймер)
СообщениеДобавлено: Сб янв 23, 2021 15:01:17 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
Switch-Case технология. Всё правильно. И ни фига не рано. Я эти статьи читал ещё на этапе ассемблера. Язык не важен. Важен сам подход. Псевдопараллельность процессов-задач.
А свитч кейс или индексный переход - тоже не важно.


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

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


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

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


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

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


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