Например TDA7294

Форум РадиоКот • Просмотр темы - Нескольно простых вопросов о программировании AVR на Си.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб апр 27, 2024 21:26:03

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


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



Начать новую тему Ответить на тему  [ Сообщений: 1459 ]     ... , , , , 73
Автор Сообщение
В сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср июл 19, 2023 08:26:51 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Код:
B &= 0b11110000;
B |= (A & 0b00001111);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср июл 19, 2023 10:05:38 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 968
Рейтинг сообщения: 0
veso74, скобки лишние. И 0b, как бы, нестандарт.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн окт 02, 2023 17:28:08 
Открыл глаза
Аватар пользователя

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Вт сен 27, 2011 07:28:44
Сообщений: 46
Откуда: Москва
Рейтинг сообщения: 0
Народ, подскажите пожалуйста как передать порт и пин в функцию?
Есть такая функция:
Код:
// функция свистоперделки (служебные сигналы)
void buzz_n_blink(uint16_t duration, uint8_t quantity, uint16_t pause, uint8_t pin)
{
   // аргументы: длительность, количество, пауза (2-я длительность), нога
   for (uint8_t i=0; i < quantity; i++) // количество оборотов цикла опеределено в quantity
   {   
      PORTA |=(1<<pin); // поднимаем ногу
      loopdelay(duration); // вызываем задержку
      PORTA &=~(1<<pin); // опускаем ногу
      if (pause >= 1) loopdelay(pause); // если аргумент pause больше или равен единице, то запускаем второй таймер
   }
}

Если порт только А, оно работает, а если порты разные то происходит бяка. Видимо не в те адреса попадаю... Порт пытался добавить как еще один аргумент.

_________________
ИзвЕните от слова - веник, ИзвИните от слова - вина.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн окт 02, 2023 17:43:04 
Прорезались зубы
Аватар пользователя

Карма: 7
Рейтинг сообщений: 73
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 221
Рейтинг сообщения: 1
Код:
void MyProc ( volatile uint8_t* pPort, uint8_t pinMask ){
    // pPort - указатель на порт
    // pinMask - маска в порту
    *pPort |= pinMask;
    // delay
    *pPort &= ~pinMask;
}

--
передавать порт вот так:
Код:
MyProc(&PORTA, 0x01);
MyProc(&PORTB, 0x04);


Добавлено after 3 minutes 44 seconds:
pinMask - маска в порту. Если нужно номер бита - то есть смысл передавать в функцию вот так:
Код:
MyProc(&PORTA, 1<<0);
MyProc(&PORTB, 1<<3);

Тогда маска у вас будет вычислена на этапе компиляции и внутри процедуры не будет выполняться 2 бесполезных сдвига.

Отредактировано: Дописала волатиль

_________________
Белая и Пушистая


Последний раз редактировалось Just_Fluffy Пн окт 02, 2023 19:51:06, всего редактировалось 2 раз(а).

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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн окт 02, 2023 18:36:07 
Открыл глаза
Аватар пользователя

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Вт сен 27, 2011 07:28:44
Сообщений: 46
Откуда: Москва
Рейтинг сообщения: 0
Большое спасибо за помощь!
Ругается на отсутствие квалификатора volatile для указателя. Который я добавил и ворнинг пропал...
Не могли бы Вы объяснить в формате для дурачков зачем он там и разве так можно было, указывать его (volatile) прямо в там, где указываются аргументы функции?
Остальное вроде бы понятно и спасибо за дополнение!

Добавлено after 15 minutes 48 seconds:
Да уж, аппетит приходит во время еды...
А нельзя сделать так, чтобы было как в дефайнах, например:
Код:
#define BUZZER PORTA4 // пищалка
#define BLUE PORTB1 // синий светодиод
#define GREEN PORTB0 // зеленый светодиод
#define RED PORTA1 // красный светодиод

И каким-то образом передавать в функцию например GREEN, а в ней уже распарсить что за порт и что за пин?

_________________
ИзвЕните от слова - веник, ИзвИните от слова - вина.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн окт 02, 2023 18:37:01 
Прорезались зубы
Аватар пользователя

Карма: 7
Рейтинг сообщений: 73
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 221
Рейтинг сообщения: 3
порт для компилятора - переменная. Но ее значение может меняться извне. Поэтому она объявлена как волатильная. Что б компилятор свою оптимизацию туда не пихал.
Соответственно, когда мы объявляем указатель на эту переменную - мы должны его написать так, как объявлена сама переменная. Поэтому компилятор у вас волатиль и попросил. Вы правильно сделали, что дописали.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср ноя 22, 2023 14:38:31 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вс окт 20, 2019 13:03:56
Сообщений: 227
Рейтинг сообщения: 0
Немножко странный вопрос. Не задумывался об этом, но стало интересно. Если main() незамкнут, не зациклен, не ведет к аппаратной остановке, что происходит в МК?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср ноя 22, 2023 14:51:28 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
avr-gcc после "выхода" из main запрещает прерывания и уводит МК в бесконечный цикл.
Код:
CLI
JMP $

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср ноя 22, 2023 16:11:18 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 968
Рейтинг сообщения: 3
Если main() незамкнут, не зациклен, не ведет к аппаратной остановке, что происходит в МК?

Ну посмотрели бы в листинге, заради любопытства. Не?)

Добавлено after 19 minutes 51 second:
Немножко странный вопрос. Не задумывался об этом, но стало интересно. Если main() незамкнут, не зациклен, не ведет к аппаратной остановке, что происходит в МК?

Конечно странный. Что значит не замкнут? Что значит не зациклен? Что значит "не ведет к аппаратной остановке"? Одни вопросы. Учитесь формулировать свои вопросы. Без этого никак. Или так и будете дурачком выглядеть на форумах.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср ноя 22, 2023 16:59:49 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вс окт 20, 2019 13:03:56
Сообщений: 227
Рейтинг сообщения: 0
OKF писал(а):
Ну посмотрели бы в листинге, заради любопытства. Не?)

А как его получить? Компилятор Си - не ассемблер.

ARV писал(а):
Учитесь формулировать свои вопросы

Тогда форумы мне были бы не нужны


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср ноя 22, 2023 17:07:26 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18103
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
листинг - файл .lss. и там ассемблерный код.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср ноя 22, 2023 17:08:42 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10548
Рейтинг сообщения: 0
Тогда форумы мне были бы не нужны
согласен. форумы - это для идиотов.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср ноя 22, 2023 17:39:06 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
... Если main() незамкнут, не зациклен, не ведет к аппаратной остановке, что происходит в МК?

При коммулятор, который использовал для теста (PIC), МК прошел этап запуска, сделал то, что ему написал и больше ничего не делает.
Один раз. И SLEEP.
Код:
#use FIXED_IO(A_outputs = PIN_A2)

void main() {
  output_high(PIN_A2);
}

Код:
...
001A:  BSF    05.2
.................... }
001B:  SLEEP

И для ATtiny другой компилятор прошел без предупреждения. Тестового устройства нет, но вероятно действия тоже проходит один раз.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт дек 26, 2023 21:07:07 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Сб июл 07, 2012 23:01:25
Сообщений: 565
Рейтинг сообщения: 0
Всем доброго вечера. Есть Вольт Амперметр на Атмега8 с дисплеем от Нокия 1202. При подаче питания вентилятор сразу должен запуститься на полую 12в, а потом должен падать напряжение зависимости от температуры,но полностью не должен отключиться то что установлено PWM=190 там вроде 6..8в на кулере. На каком Языке написано не знаю. Помогите кто может,где что 0 или 1 ставить.Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср дек 27, 2023 01:07:27 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10548
Рейтинг сообщения: 0
а что, скопировать текст никак было? Мне вот лень его набирать.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср дек 27, 2023 15:15:54 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Сб июл 07, 2012 23:01:25
Сообщений: 565
Рейтинг сообщения: 0
Вот прект


Вложения:
dual_band_pok.c [7.77 KiB]
Скачиваний: 23
Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср дек 27, 2023 19:12:09 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Если правильно понял идею:
Код:
interrupt [TIM0_OVF] void timer0_ovf_isr(void) ...

в:
Код:
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
  counter_term++;
 
  if (counter_term == 60) {
    counter_term = 0;
   
    if (term == 0) {
      temper = ds18b20_temperature(0);

      if (temper < 50)
        PWM = 190;
      else if (temper < 55)
        PWM = 220;
      else if (temper < 60)
        PWM = 240;
      else
        PWM = 255;

      OCR2 = PWM;
    }
  }
}

и строка 109:
Код:
 delay_ms(200);

в напр.
Код:
 delay_ms(5000);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Ср дек 27, 2023 21:45:39 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Сб июл 07, 2012 23:01:25
Сообщений: 565
Рейтинг сообщения: 0
Благодарю.Ребята тут у меня целая проблема вот тут на картинке обозначил красным как их делать с какими кнопками или дайте пожалуйста ссылку какими кнопками как управляют при написании ПО.
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вс мар 24, 2024 21:33:27 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Чт авг 08, 2013 01:06:54
Сообщений: 359
Рейтинг сообщения: 0
Доброго времени суток. Есть ли у кого-то компилятор ICCTiny v6 ? Или какой-то другой, поддерживающий AVR без SRAM, такие как AT90S1200, ATtiny12, ATtiny28.


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

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


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

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


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

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


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