Например TDA7294

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





Текущее время: Вт апр 16, 2024 12:49:47

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


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



Начать новую тему Ответить на тему  [ Сообщений: 1459 ]     ... , , , 36, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт окт 24, 2017 19:51:57 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
sibiryak69 писал(а):
а точнее не совсем понятно зачем unsigned char заключено в круглые скобки
это явное преобразование типа результата. по умолчанию результат (baud>>8) будет иметь тип unsigned int (по "наибольшему типу операнда, т.е. baud), а в регистры UBRRL/UBRRH надо помещать байт... и автор посчитал, что без явного указания компилятору рассматривать результат сдвига, как беззнаковый байт, правильный результат может быть не достигнут...

хотя как по мне, так это все избыточно - и без приведения типа все будет сделано корректно

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Чт окт 26, 2017 16:46:31 
Первый раз сказал Мяу!

Зарегистрирован: Вс июн 19, 2016 06:31:18
Сообщений: 24
Рейтинг сообщения: 0
А как по вашему можно было бы записать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Чт окт 26, 2017 17:27:19 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
sibiryak69 писал(а):
как по вашему можно было бы записать?
Код:
UBRPH = baud>>8;
UBRRL = baud;

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

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


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пт окт 27, 2017 16:54:59 
Первый раз сказал Мяу!

Зарегистрирован: Вс июн 19, 2016 06:31:18
Сообщений: 24
Рейтинг сообщения: 0
sibiryak69 писал(а):
как по вашему можно было бы записать?
Код:
UBRPH = baud>>8;
UBRRL = baud;

то есть если запихивается в байтный регистр 16 разрядное значение старший байт просто откидывается?


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пт окт 27, 2017 17:57:40 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вс окт 29, 2017 04:39:01 
Первый раз сказал Мяу!

Зарегистрирован: Вс июн 19, 2016 06:31:18
Сообщений: 24
Рейтинг сообщения: 0
угу


спасибо


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн ноя 06, 2017 14:55:29 
Первый раз сказал Мяу!

Зарегистрирован: Вс июн 19, 2016 06:31:18
Сообщений: 24
Рейтинг сообщения: 0
Всем добрый день, подскажите кто знает о структурах в си
Например встречал такие записи

struct database {
int rowId;
int name;
float surname;
};

int main()
{
struct database worker; // объявили переменную-структуру

worker.rowId = 1;
worker.name = Denis;
worker.surname = Sukhoverkhov;
}

Объявляется структура с именем database имеет три переменные, rowId, name, surname.
затем объявляется переменная worker
через переменную worker мы можем получить доступ к элементам структуры. Доступ к элементам структуры осуществляется через точку.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн ноя 06, 2017 15:09:15 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
sibiryak69 писал(а):
для чего такие сложности и каким образом структуры могут использоваться при программировании микроконтроллеров
как вы себе представляете обработку 25-и аналогичных структур? когда всего 3 переменных, можно обойтись и без структуры, а когда групп по 3 переменных 25 или более?
структуры всегда используются для создания логически увязанных единиц информации, чтобы унифицировать обработку этой информации.
например, я применял структуры, когда делал индикацию методом чарлиплекса - слыхали о таком? это, грубо говоря, когда для зажигания светодиода используется не только два состояния (0 и 1), но и третье состояние пина микроконтроллера, так называемое Z-состояние. так вот, пока вы управляете светодиодом через единственный порт PORTx, все просто и без структур. Но когда состояние светодиода определяется состоянием уже двух портов PORTx и DDRx, получается уже не так красиво...

я создал структуру, в которой каждому светодиоду сопоставил поле "адрес порта PORT", "адрес порта DDR" и "битовая маска светодиода", после чего работать стало гораздо проще... особенно для светодиодов, подключаемых к разным портам. у меня вышло все унифицировать именно благодаря структурам, описывающим каждый светодиод.

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн ноя 06, 2017 15:13:47 
Грызет канифоль

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 0
Так вот вопрос, для чего такие сложности и каким образом структуры могут использоваться при программировании микроконтроллеров


Для Вашего примера, напишите, функцию поиска нужной записи, например, по фамилии. Без использования структур. А потом с использованием. И все поймете.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн ноя 06, 2017 15:41:36 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Структуры помогают упорядочить код. Например, часы с будильником - вводим структуру, храняющую время в своих элементах, аналогично - для будильников. Потом и сравнивать много легче, и код читабельнее. А без этого получается вот такое :).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт ноя 07, 2017 19:01:58 
Первый раз сказал Мяу!

Зарегистрирован: Вс июн 19, 2016 06:31:18
Сообщений: 24
Рейтинг сообщения: 0
доброго всем здравия. мне кажется я что то понял из ваших подсказок. Попробую описать простыми словами. Например возьмем какой нибудь объект пусть это будет автомобиль. у каждого авто есть много характеристик, для простоты возьмем несколько длинна, ширина, мощность, вес. объединяем их в структуру автомобиль

struct автомобиль {
int длинна;
int ширина;
float мощность;
nt вес;
};

но марки автомобилей разные и характеристики у них разные

возьмем к примеру несколько марок

ваз
тойота
ниссан

и объявим переменные
struct автомобиль ваз
struct автомобиль тойота
struct автомобиль ниссан

и затем инициализируем их

ваз.длинна = хх
ваз.ширина = хх
ваз.мощность = хх
ваз.вес = хх

тойота.длинна = хх
тойота.ширина = хх
тойота.мощность = хх
тойота.вес =

ниссан.длинна = хх
ниссан.ширина = хх
ниссан.мощность = хх
ниссан.вес = хх

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

и вполне логична запись через точку имя конкретного объекта и его конкретная характеристика с последующим присвоением значения или другими операциями

прошу извинить, что много расписал, но я так понял структуры в си
если я не прав попрошу поправить
всем спасибо


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт ноя 07, 2017 20:01:42 
Грызет канифоль

Карма: 9
Рейтинг сообщений: 80
Зарегистрирован: Чт ноя 06, 2014 13:09:06
Сообщений: 251
Рейтинг сообщения: 0
sibiryak69, чем фамилия-имя из предидущего примера не понравилось? :))

Примерно ты правильно понял. Это способ объединить логически связанные данные.
Но доступ <имя переменной>.<поле структуры> - не единственная возможность.
Еще есть указатель (в том числе и на структуру).
Еще есть массивы (в том числе и структур).

А так, да: ты ввел новую абстракцию (новый тип) (struct автомобиль). Далее можешь данный тип использовать:
Код:
/* считаем транспортный налог :-) */
float nalog (struct автомобиль *a)
{
    if (a->мощность <= 100)
        return a->мощность * 12.0;
    if (a->мощность <= 125)
        return a->мощность * 25.0;
   ...
    return a->мощность * 150.0;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Чт ноя 09, 2017 22:39:49 
Родился

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Вт ноя 07, 2017 22:24:06
Сообщений: 2
Рейтинг сообщения: 3
Всем привет!
Не совсем нашёл тему куда этот вопрос можно задать, так что напишу пока здесь. Если не туда запостил - перенесу, извините.
В общем, решил поэкспериментировать с АВР, сварганил небольшой проект на Атмега 168, но даже светодиод не моргает, хотя контроллер шьётся.
Я уже отчаялся искать где у меня косяк, несколько вечеров бьюсь.
Вводные:
Atmega168
USBasp
AVRDude_PROG3.3 ( khazama тоже пробовал)
AtmelStudio

Схема
Изображение

Код:
Код:
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
   DDRD = 0b10010000;
   PORTD = 0b10010000;

    while (1)
    {
      PORTD = 0b10000000;
      _delay_ms(300);
      PORTD = 0b00010000;
      _delay_ms(300);
    }
}


Hex-файл
https://yadi.sk/d/_qbhwHYZ3PVWrQ

хекс-файл беру из папки Release проекта после билда.

Суть проблемы в том, что контроллер шьётся, верификацию памяти проходит, но не подает никаких признаков жизни. Причем прошивается он 100%, т.к. я пробовал шить на одном компе и верификацию проводить на другом - если прошивки одинаковые, то верификация проходит нормально, если разные, то не верифицируется. (также и при прошивке AVRDUDE и верификацией Khazam'ом)
Если изменить фьюзы в хазаме, то потом эти изменения можно увидеть в AVRdude.
Настройка фьюзов:
Изображение
Пытаюсь запустить хотя бы просто на внутреннем генераторе.
EESAVE нажат просто для теста.записи\считывания фьюзов.

В протеусе код работает ><
Уже впаял другой контроллер ( думал, мб порт выгорел), но результат такой же.
Блин, мужики, ЧЯДНТ?! :facepalm:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пт ноя 10, 2017 06:41:12 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Не вижу причин схеме не работать.Проверьте вольтметром на ножках МК, "мигают" ли они.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пт ноя 10, 2017 07:18:11 
Электрический кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 128
Зарегистрирован: Чт июн 20, 2013 00:00:58
Сообщений: 1031
Откуда: москва, м.Сходненская
Рейтинг сообщения: 7
restfuldon,а как оно будет работать если резет к земле прижат?
его к +5 надо подтянуть! :solder:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пт ноя 10, 2017 08:36:13 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Ха, действительно :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пт ноя 10, 2017 14:34:16 
Родился

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Вт ноя 07, 2017 22:24:06
Сообщений: 2
Рейтинг сообщения: 0
restfuldon,а как оно будет работать если резет к земле прижат?
его к +5 надо подтянуть! :solder:


Ё-моё, а слона-то я и не заметил :facepalm:
Всё, зашуршала схема! Спасибо огромное ) :music:
Вот что значит взгляд со стороны!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пт ноя 10, 2017 16:57:17 
Первый раз сказал Мяу!

Зарегистрирован: Вс июн 19, 2016 06:31:18
Сообщений: 24
Рейтинг сообщения: 0
так вот, пока вы управляете светодиодом через единственный порт PORTx, все просто и без структур. Но когда состояние светодиода определяется состоянием уже двух портов PORTx и DDRx, получается уже не так красиво...

я создал структуру, в которой каждому светодиоду сопоставил поле "адрес порта PORT", "адрес порта DDR" и "битовая маска светодиода", после чего работать стало гораздо проще... особенно для светодиодов, подключаемых к разным портам. у меня вышло все унифицировать именно благодаря структурам, описывающим каждый светодиод.


Уважаемый AVR, я так полагаю вы имели в виду регистры PORT и DDR ???

Добавлено after 8 minutes 6 seconds:
не плохо о структурах рассказано здесь
http://www.youngcoder.net/2015/01/structury1.html?m=1
понравилось выражение "структурная переменная", а сама структура как бы шаблон для структурной переменной


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

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пт ноя 24, 2017 16:09:13 
Родился

Зарегистрирован: Пн ноя 13, 2017 11:35:30
Сообщений: 3
Рейтинг сообщения: 0
Добрый день, не поможете мне разобраться в регистрах. Пытаюсь сделать импульсы на atmel328. Нужно два канала, на которых будут импульсы длительностью 10 мкс и паузой между ними 30 мкс. Импульсы одинаковые, только на втором канале есть задержка от первого канала. На 5-10 мкс по заднему фронту от первого канала.


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

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


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

Сейчас этот форум просматривают: Engineer_Keen и гости: 29


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

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


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