Например TDA7294

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

Текущее время: Пн мар 02, 2026 18:45:34

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8396 ]     ... , , , 419,  
Автор Сообщение
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 12:27:03 
Друг Кота

Карма: 1
Рейтинг сообщений: 91
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8994
Откуда: .ru
Рейтинг сообщения: 0
а потом постоянно надо возвращаться в начало программы и смотреть чему равен define...
бред полный !
:facepalm:

по нормальному объявляешь переменную по имени которой понятно за что отвечает эта переменная.

Код:
unsigned char port_B = 0;


а потом записывает в переменную состояние порта "B"

Код:
port_B = PINB;


далее... в программе мы знаем что в переменно "port_B" записано состояние порта "B".
это понятно по имени переменной.
и далее спокойно работаем с переменно "port_B".
без всяких define...
:tea:

кому-то точно надо пойти дальше учиться))
:facepalm:

Устал я от тебя.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 12:53:16 
Друг Кота
Аватар пользователя

Карма: 17
Рейтинг сообщений: 473
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Сообщений: 5681
Откуда: Воронеж
Рейтинг сообщения: 0
roman.com писал(а):
а потом постоянно надо возвращаться в начало программы и смотреть чему равен define...

Зачем? В самом дефайне отражено его предназначение. Конструкция типа if (VHODNOY_SIGNAL_PRIYOMNIKA == 1 ) {...} недостаточно отражает логику происходящего? Какая разница к какой конкретно ножке там за кулисами подключен этот сигнал?

_________________
"Привет!" - соврал он.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 13:10:56 
Друг Кота

Карма: 1
Рейтинг сообщений: 91
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8994
Откуда: .ru
Рейтинг сообщения: 0
разница в читаемости кода...

в переменной "port_B" записано состояние порта "B".
больше ничего не надо.

всё ясно.
:facepalm:
если кому надо раздуть код своей программы до немыслимых размеров... обращайтесь к OKF и >TEHb< ))
:tea:


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 13:55:11 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 133
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1356
Рейтинг сообщения: 0
Тяжелый случай.(
Изменил ты подключение. И что будешь переписывать везде port_b на port_d?
Даже, если ничего не меняешь, get_dtmf() уже говорит сам за себя. И даже комментарии излишни.
И неважно как ты его получишь, какие биты к каким портам подключены.
Это же не ассемблер. И даже там стараются отделять подключение и логику.
Рома, удачи!


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 14:20:43 
Друг Кота
Аватар пользователя

Карма: 17
Рейтинг сообщений: 473
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Сообщений: 5681
Откуда: Воронеж
Рейтинг сообщения: 0
Ну классно. А если часть сигналов заведены на порт Б, а часть на порт А? Всё, переменную никак не назвать.
Если ноги-порты задавать дефайнами, то можно сразу и их настройку проводить. То есть программа настраивается в одной точке.

_________________
"Привет!" - соврал он.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 15:16:36 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 109
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 429
Рейтинг сообщения: 0
а потом постоянно надо возвращаться в начало программы и смотреть чему равен define...
бред полный !

Зачем? Все современные IDE выводят значения констант в контекстной подсказке просто после наведения на имя константы. А в режиме отладки так же можно смотреть и значения переменных...

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 6 декабря 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 14, 2026 13:50:50 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -27
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 560
Рейтинг сообщения: 0
Добрый вечер уважаемые ! Как в программе организовать рестарт МК ? Ну например в PIC CCS есть команда restart ( cpu ) точно не помню как она пишется но она есть. А в CV AVR такой нет как я понял.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 14, 2026 14:30:27 
Мудрый кот

Карма: 25
Рейтинг сообщений: 499
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1870
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
asm("jmp 0"); или аналогично в выбранном компиляторе (периферия не сбрасывается),
но лучше с WDT: wdt_enable(WDTO_15MS); и какая-то пауза или бесконечный цикл до перезапуска.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср янв 14, 2026 20:12:03 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -27
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 560
Рейтинг сообщения: 0
Ну то есть заставить собачий таймер отработать ? ...

Добавлено after 3 hours 15 minutes 49 seconds:
Да ! Там одна кнопка , краткое нажатие меняет параметры отображения , длинное - процедура изменения параметров ... Всё на динамической индикации , и в ней же сброс сторожевого таймера ... Можно ещё сделать более длинное нажатие на кнопку , и тогда сделать бесконечный цикл без входа в индикацию , конечно тогда WDT сбросит МК.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт фев 27, 2026 17:20:37 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -27
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 560
Рейтинг сообщения: 0
Как в CV AVR реализовать передачу строки ( не строчной переменной ) в функцию или процедуру ?
Такой код не работает , хотя вроде всё логично ...
Код:
const unsigned char sim[33]=
{65,160,66,161,224,69,163,164,165,166,75,167,77,72,79,168,80,67,84,169,170,88,225,171,172,226,196,174,173,175,176,177}; //коды Кириллицы для китайских LCD

const  char sim1[33]=
{'А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ш','Щ','Ь','Ы','Ъ','Э','Ю','Я'}; //коды Кириллицы винды

void pint_rus (char str[])
{
  unsigned char j,j1,size ;
 
  size=sizeof(str)-1; // определяем длинну строки
  for(j=0;j<size;j++); // начинаем перекодировку символов из виндовых в китайские LCD
            {
              for(j1=0;j1<33;j1++)
              if (sim1[j1]==str[j])
              lcd_putchar(sim[j1]); // выводим на LCD РУССКИЙ текст
 
            }
}

while (1)
          {
              lcd_gotoxy(0,3);
              pint_rus("ПРЕВЕД МЕДВЕД");

          }


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб фев 28, 2026 07:02:08 
Встал на лапы

Зарегистрирован: Пн фев 16, 2026 17:30:02
Сообщений: 107
Рейтинг сообщения: 0
В Си нет такого типа - "строка". Поэтому строка - это обычный массив элементов типа char. А передача массива в функцию - по указателю.
Код:
void Print(const char *str, unsigned int len)
{
    while(len--)
    {
          ....
    }
}



Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 10:39:32 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2122
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18480
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
sizeof не определяет размер строки! Размер строки определяет strlen

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

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


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 14:59:49 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -27
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 560
Рейтинг сообщения: 0
Ну как бы размер строчной переменной прекрасно как раз таки определяет.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 15:15:11 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2122
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18480
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Определяет, говорите? И даже по передаваемому в параметре функции указателю тоже определяет?

sizeof может определить только размер константной строки.

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

Добавлено after 3 minutes 21 second:
Как-то так:
Код:
 char c;
while(c=*str++) {
   encode_char(c); // обработка очередного символа строки str
}

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

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


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 15:53:04 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4612
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Thinnnfor писал(а):
хотя вроде всё логично ...
Где Вы видите логику в :
Код:
char str[]

sizeof(str)
?

Что ожидаете в этом случае от sizeof ? И почему именно такие ожидания ?


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 16:37:07 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -27
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 560
Рейтинг сообщения: 0
Ну вот кусок программы для часов-термометра которых уже несколько штук и работают 5 лет.
Реализация бегущей строки для светодиодных матриц 8х8 , выкладывать коды функций нет смысла они работают. Ну и sizeof вполне работает .

Код:

char unsigned str2[]="   ТЕМПЕРАТУРА ВОЗДУХА ";// глобальная строковая переменная

while (1)        // основной цикл программы
          {
             a=5; // скорость бегущей строки, не будем заморачиваться
             size=sizeof(str2)-1;  // определяем размер строковой переменной
             for(k=1;k<size;k++)  //выводим  текст "   ТЕМПЕРАТУРА ВОЗДУХА "
              {
               simv=(str2[k]) ; // определяем код очередного символа в выводимой строке
               obrzap (simv) ; // заполняем невидимую нуль-матрицу ( справа )для последующего сдвига в видимую область, из таблицы 8*8 для матрицы светодиодов
               sdvig(); //сдвиг 8 строк * 8 раз в лево
              } // далее повторяемся для следующего символа пока строка не кончится

          }


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 16:52:28 
Встал на лапы

Зарегистрирован: Пн фев 16, 2026 17:30:02
Сообщений: 107
Рейтинг сообщения: 0
В таком виде sizeof срабатывает. Но при передаче в функцию теряется размер строки (массива элементов char)/

Длину строки в функцию лучше передавать в явном виде, как показывал ранее. Это позволит выводить строку не полностью, а также не нуль-терминированные строки


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 17:19:20 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -27
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 560
Рейтинг сообщения: 0
Вот в том и вопрос... Хотелось бы не писать одно и тоже для вывода каждой строки, а сделать функцию в которую будет передаваться только строка.

Добавлено after 1 minute 13 seconds:
Всмысле только содержимое строки

Добавлено after 22 minutes 19 seconds:
Ну и допустим в стандартной библиотеке CV AVR #include <alcd.h>
lcd_putsf("hello word"); работает же !
Почему я не могу написать библиотеку где будет просто print_rus (" привет мир ") просто со скобками и кавычками . Кстати для PIC CCS я переделал стандартную библиотеку , и она именно так работает как надо.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 17:22:43 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 59
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 513
Рейтинг сообщения: 0
Почему я не могу написать библиотеку где будет просто print_rus (" привет мир ") просто со скобками и кавычками .

Вам же сказали, что для определения длины строки используйте strlen, в чем проблема? Хотя там размер не сильно и нужен...


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс мар 01, 2026 17:30:22 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -27
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 560
Рейтинг сообщения: 0
Thinnnfor писал(а):
Кстати для PIC CCS я переделал стандартную библиотеку , и она именно так работает как надо.


Вот так :
Правда только для заглавных букв , но это уже мелочи !

Изображение

И вызывается вот так :
lcd_rus(" РОССИЯ ФОРЕВЕР ЕВРОПА ГОВНО ");


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

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


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

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


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