Jump to content

Примеры Кода Для Avr


Duhas
 Share

Recommended Posts

Какую Вы хотите библиотеку создать ? Объясните, что она по Вашему должна делать, какие функции выполнять, и т.д... ?

Мне вот, например, совершенно не понятно её назначение. Я всегда затачиваю дин. индикацию конкретно под свою задачу.

Link to comment
Share on other sites

И чем универсальное решение будет лучше написание того десятка строк каждый раз заново? Переписываемый с нуля вариант имеет преимущества в размере, скорости и универсальности (можно повесить хоть на прерывание от SPI, хоть в общий цикл, хоть в отсчет времени), работа с любыми индикаторами (ОА/ОК) и расположением выводов. Выводы индикатора зачастую проще выводить не по порядку, а вразнобой, контроллеру же это безразлично. Возможность разбросать выводы хоть по одному выводу на порт, не слишком теряя в скорости.

А главное - преобразование число-строка. Универсальное решение занимает много места, а целиком не нужно почти никогда (для отладки разве что). Тот же *printf тому примером. Иногда достаточно выводить только целые положительные числа, иногда с фиксированной точкой, иногда с плавающей.

А библиотеку сделать стоит, ведь делают библиотеки для ЖК
У знакосинтезирующих ЖК-индикаторов свой стандартный контроллер со своим интерфейсом. Меньше разнообразия. Но и там обычно вывод чисел не реализован - только строк.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Link to comment
Share on other sites

Хорошо. Не хотите, как хотите, я так понял рассуждение про высокие материи и кому, что надо интереснее.

Короче может кому сгодится тут много всяких библиотек, в том числе и для 7-ми сегментного индикатора: http://chipenable.ru/index.php/programming-avr/item/206-biblioteka-dlya-semisegmentnogo-indikatora-s-proizvolnym-podklyucheniem-vyvodov.html там парняга не рассуждает, а просто делает, я хотел сделать, что-то подобное, но менее навороченное, может, короче, ладно.

Будьте проще и люди к вам потянутся.

Link to comment
Share on other sites

Выгодные LED-драйверы MOSO для индустриальных приложений

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

Читать статью>>

Хорошо. Не хотите, как хотите
[деже не знаю, какой смайл сюда вставть... Больше подходит как на коте, который лоб закрывает рукой]...

Вам задали вопросы :

Какую Вы хотите библиотеку создать ? Объясните, что она по Вашему должна делать, какие функции выполнять, и т.д... ?

А Вы знай своё твердите - библиотека, библиотека, ... хочу сделать, хочу библиотеку...

Ответьте всё-таки на вопросы. Мне действительно интересно.

А то получает, что Вы хотите то, сами не знаю чего. Вы, похоже, просто тащитесь от слова "библиотека". Вас больше ничего не интересует кроме библиотек.

Многие быдлокодеры, в отличии от специалистов, при задаче "Поднять какой-нибудь протокол с каким-нибудь датчиком", начинают гуглить фразу "библиотека для датчика xxxxx", в отличие от спеца, который гуглит "datasheet на xxxx".

Вот и Вы также помешаны на "библиотеках", сами не понимая, что хотите от них. Вам самое главное, чтобы это была библиотека, и пофиг какая она должна быть...

Короче может кому сгодится тут много всяких библиотек, в том числе и для 7-ми сегментного индикатора: http://chipenable.ru...em-vyvodov.html там парняга не рассуждает, а просто делает

Этот парняга нихрена не делает, и уровень его оставляет желать лучшего. Из него кодер, как из меня балерина. А балерина из меня, как из коровы мисс красоты. И больше половины его статей - просто тупой копипаст, некоторый с переводом.
Link to comment
Share on other sites

  • 1 month later...

ER10450 – литий-тионилхлоридная батарейка FANSO EVE Energy формата ААА
Компания FANSO EVE Energy расширила номенклатуру продукции, разработав новый химический источник тока (ХИТ) – батарейку литий-тионилхлоридной электрохимической системы (Li-SOCl2; номинальное напряжение 3,6 В) типоразмера ААА – ER10450. Батарейка имеет бобинную конструкцию (тип Energy) и предназначена для долговременной работы при малых токах.
Батарейка может применяться в приборах учета ресурсов, в различных датчиках, устройствах IoT и в других приборах и устройствах, в которых требуется компактный ХИТ соответствующей емкости.
Подробнее >>

Новое семейство HRP/N3 от MEAN WELL – ИП с 350% перегрузкой для промышленных приложений

В промышленных устройствах и установках с электроприводом на двигателях постоянного тока в момент пуска требуется обеспечить повышенный ток. Для решения этой задачи MEAN WELL предлагает вместо ИП с повышенной избыточной мощностью, более оптимальное решение - источник питания с необходимой перегрузочной способностью семейства HRP/N3. 

Новое семейство, представленное в Компэл, экономичнее и расширяет уже существующее HRP/N в увеличении кратности перегрузки. Подробнее>>

А что их дружить? )))

взял прикрутил к ножкам обвязку , написал код , и вуаля )

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Link to comment
Share on other sites

да что смотреть ) найди в даташите соответствующие регистры - и управляй!

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Link to comment
Share on other sites

Ага... А то я не знал типа, что есть даташит... Включаю Ацп - работает, включаю ШИМ и он работает. Включаю их вместе, жуть кошмарная, вись и бред.

Я просто думал, может тут обитает экстрасенс, он то мне точно помог БЫ

Edited by si4karuk
Link to comment
Share on other sites

в каком режиме работает АЦП? как их вместе включаешь? Код покажи .

ща поищу в своих проектах , если найду - покажу как я делал.

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Link to comment
Share on other sites

Нашел проект где использовал и то и другое сразу (Atmega328):

// PWM OUT
#define out_pwm OCR1AL

//******** ADC ******************//
#define ADC_VREF_TYPE 0x20
volatile unsigned char timer_adc, adc_data;
#define FIRST_ADC_INPUT 7
#define LAST_ADC_INPUT 7
//*******************************//


// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
// конфигурация АЦП

DIDR0=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0xA7;
ADCSRB&=0xF8;

// ШИМ
TCCR1A=0x81;
TCCR1B=0x0B; // A
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// вызов

adc_data = read_adc(7);

out_pwm = pwm1 + pwm1; // вываливаем значение на выход

В результате , все отлично пашет!

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Link to comment
Share on other sites

Квавр... Создали переменные, забили туды значения ацп и шима, когда нужно взяли...

У меня тоже что то похожее.

Может глюк из за того что ацп постоянное преобразование?? с постоянным выводом на показометр. Хотя... А может та куча ифов мешает

Спасибо

Edited by si4karuk
Link to comment
Share on other sites

ну так а зачем постоянно преобразовывать? Можно просто периодически "опрашивать" АЦП и выводить данные на экран .

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Link to comment
Share on other sites

  • 1 month later...

народ выручайте

собсно суть проблемы:

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

пример:

aaa == 11000011

чтото делаем и получаем

aaa == 11000011 11000011

если по русски то как в переменную добавить байт не складывая его со значением переменной а размещая его как младший байт?

все это дело нужно на Си

заранее спасибо

Edited by Viktor26

Не знаеш как? Спроси у Google'а !!!

Link to comment
Share on other sites

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

Учение - изучение правил. Опыт - изучение исключений.

Link to comment
Share on other sites

я наверное вопрос не доконца сформулировал.

могу ли я сразу байт сдвинуть в эту переменную, или только побитно?

Не знаеш как? Спроси у Google'а !!!

Link to comment
Share on other sites

Копированием младшего байта в старший. На ассемблере числа больше байта редкость и все знают что с ними делать, на Си с это получается автоматом.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Link to comment
Share on other sites

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

Если вы хотите сделать операцию сдвига int переменной побайтно, т.е. младший байт int a сделать старшим, а вместо младшего записать старший байт int b, то можно так:

int a, b;			
a=(a&0xff)*256+b/256;

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

Edited by Sergey-Ufa
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...