Например TDA7294

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

Текущее время: Пн окт 13, 2025 09:49:37

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8366 ]     ... , , , 405, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 16, 2019 15:14:26 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4886
Откуда: Минск
Рейтинг сообщения: 0
Сериг, sizeof - это не функция (значение должно быть известно на этапе компиляции) и не магия. В функцию передаётся массив, размер которого неизвестен, sizeof просто чисто логически не может знать это число.

Передавайте это значение как аргумент функции, а вот уже там, где эта функция вызывается - там для конкретного массива уже это число должно быть известно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 16, 2019 18:26:35 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
ARV, WiseLord, скажите, вы предлагаете сделать так, или до вызова функции просто считать?
Код:
 void small_image(unsigned char x,unsigned char y, flash unsigned char image [], num_bytes = sizeof(image) )
, где num_bytes глобальная переменная


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 16, 2019 19:01:08 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2126
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18413
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
я, конечно, не знаю, как там у вас конкретно сделано, но предполагаю, что как-то так:
Код:
flash char img[345] = {0x01, 0x02, 0x03 ... и т.д.}
так вот, 345 вы и должны передать в функцию, и для этого вам не нужна какая-то особая переменная:
Код:
small_image(10,10,img, 345); // можно так
small_image(20,20,img, sizeof(img)); // а можно и так

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 16, 2019 19:05:41 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
ARV, первый вариант точно отпадает, т.к. Массив у меня безразмерный (и не один), а посему я заведомо не знаю его размер. А вот второй вариант сейчас попробую, отпишусь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 16, 2019 19:10:21 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2126
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18413
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
вообще говоря, если вы и в самом деле работаете с выводом картинок на дисплей, то я просто не представляю, как при этом вы обходитесь без знания "размеров картинки". ведь где-то там в массиве у вас явно должны храниться ширина и высота картинки в пикселах, а уж по ним можно вычислить и размер массива в байтах... так что даже и sizeof не понадобится.

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн дек 16, 2019 19:22:43 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
ARV, размер в пикселях я знаю (х на у), но корректно посчитать перемножив эти данные - получается только в случае равносторонней картинки. На дисплей вывод происходит постранично (5х8 пикселей одно знакоместо (x на y)), из-за этого мне надо понимать, когда переносить курсор на следующую строку. Зная объем данных в байтах, я могу понимать, когда необходимо заканчивать вывод (ну это для вас совершенно очевидно). Из-за этого я и пытаюсь придумать велосипед...
P.s.
Код:
small_image(20,20,img, sizeof(img)); // а можно и так

Так работает, большое спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 19, 2019 22:23:35 
Открыл глаза

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 19, 2019 22:25:36 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4886
Откуда: Минск
Рейтинг сообщения: 0
Запустить таймер на 5 секунд, при срабатывании - выключиться. Если что-то нажато - таймер снова устанавливается в 5 секунд.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 19, 2019 22:45:46 
Открыл глаза

Зарегистрирован: Вт сен 10, 2019 16:18:33
Сообщений: 64
Рейтинг сообщения: 0
простите только deley освоил))))может примерчик?не ругайтесь только плз


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 20, 2019 06:49:13 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4886
Откуда: Минск
Рейтинг сообщения: 0
Освойте таймеры, тогда и пример не понадобится. Информации в интернете полно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт дек 24, 2019 22:31:42 
Открыл глаза

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


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

Карма: 98
Рейтинг сообщений: 2126
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18413
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
не уверен, что это "годная" книжка, но я старался... время течет, все меняется, кое-что с тех пор уже устарело... но, возможно, что-то будет и полезным: https://simple-devices.ru/articles/7-so ... avr-studio

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср дек 25, 2019 07:07:04 
Опытный кот
Аватар пользователя

Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 744
Откуда: Караганда, Казахстан
Рейтинг сообщения: 0
Подскажите где можно скачать годную книжку по програмипованию avr си в пдф
Спроси у Яндекса "di halt avr. учебный курс", вторая ссылка отдает очень хорошую ПДФ-ку. Первая половина - программирование AVR на АСМе, вторая - на Си. ИМХО, это лучший учебник по АВР.

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср дек 25, 2019 18:42:19 
Открыл глаза

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт дек 26, 2019 18:30:30 
Открыл глаза

Зарегистрирован: Вт сен 10, 2019 16:18:33
Сообщений: 64
Рейтинг сообщения: 0
Нашел ребят книги,на этом же форуме


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт фев 04, 2020 16:05:55 
Потрогал лапой паяльник

Карма: -4
Рейтинг сообщений: -18
Зарегистрирован: Сб окт 20, 2007 14:12:03
Сообщений: 326
Рейтинг сообщения: 0
Я скачал последнюю эволюшн версию с офф сайта и при компиляции примерно на 200 байт меньше она сделала прошивку (около 4К размер) что я считаю довольно таки неплохо. Но нифига ее нигде нет. Не покупать же право слово.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт фев 07, 2020 13:34:55 
Говорящий с текстолитом
Аватар пользователя

Карма: 10
Рейтинг сообщений: 16
Зарегистрирован: Сб фев 18, 2012 15:42:29
Сообщений: 1643
Откуда: Курск
Рейтинг сообщения: 0
Народ подскажите. Вот у меня имеется переменная:

x=0b 0010 1011

Мне нужно записать в регистры:

PORTB=(1<<7)|(1<<6) \\в регистр PORTB 7 и 6 бит переменной X биты 7 и 6 соответственно
PORTC=(1<<7)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1) \\в переменную PORTC 7,5,4,3,2,1 бит переменной X 5,4,3,2,1,0 соответственно

итого должно выйти:

PORTB=(0<<7)|(0<<6)
PORTC=(1<<7)|(0<<5)|(1<<4)|(0<<3)|(1<<2)|(1<<1) \\должно быть так


Вложения:
sem.JPG [25.23 KiB]
Скачиваний: 243


Последний раз редактировалось mixon46 Пт фев 07, 2020 13:48:02, всего редактировалось 1 раз.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт фев 07, 2020 13:52:15 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2109
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7029
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
PORTB=x&((1<<7)|(1<<6));
x<<=1; //переставим биты в х так, чтобы они стали соответствовать битам порта с
x&=~(1<<7);
x|=(x<<1)&(1<<7);
PORTC=x&((1<<7)|(<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1);

Добавлено after 4 minutes 43 seconds:
так неиспользуемые биты портов (портб 0-5 и портс 0, 6) сбросятся в 0
если их состояние требуется сохранить, то присвоение нужно делать так:
PORTB=(x&((1<<7)|(1<<6)))|(PORTB&(~((1<<7)|(1<<6))));
с портом с - аналогично...

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт фев 07, 2020 14:19:15 
Говорящий с текстолитом
Аватар пользователя

Карма: 10
Рейтинг сообщений: 16
Зарегистрирован: Сб фев 18, 2012 15:42:29
Сообщений: 1643
Откуда: Курск
Рейтинг сообщения: 0
жесть. спасибо

Добавлено after 19 minutes 4 seconds:
x&=~(1<<7);

третья строчка. Тут переменная уже смещенная на бит влево.
я вижу эту строчку так.
Смещенная на 1 бит влево x:

x<<=1;

x был 00101011
x стал 01010110

затем
x&=(~1<<7); \\инверсия 7 бита? и побитовое И

x был 01010110
x (~1<<7) стал 11010110
x (&) стал 11010110
_____
в переменной x старшие биты 0b00101011
0 и 0 соответственно. а после
PORTB=x&((1<<7)|(1<<6));

получается 0b11000000. но должны быть нули как в переменной.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт фев 07, 2020 15:05:34 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2109
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7029
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
давай по порядку:
биты х - 87654321 (я специально так указал, потомучто 0 будетиобозначать 0)
портб<—87000000
портс<—60543210
в порт б отправить легко - просто ммаской отфильтруем 2 старших бита
теперь порт с:
сдвинем на 1 влево х<<=1;
х — 76543210
очистим 7 бит х&=~(1<<7);
х — 06543210
и перенесём один бит на нудное место
для этого его надо отфильтровать и сдвинуть на одну позицию влево
х
06543210
х'=х<<1
65432100
(х')&(1<<7)
60000000
теперь сложим с исходной х
66543210
6 бит нам не нужен, поэтому не важно что в нём лежит
отфильтруем по маске для портс
60543210

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


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

Часовой пояс: 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