Ушик Опубликовано 30 апреля, 2022 Поделиться Опубликовано 30 апреля, 2022 Здравствуйте, уважаемые. По традиции, снова лезу к вам за помощью Имеется процессор ATMega128L и прошу помочь с рыбой/шаблоном под AVR Studio 7 + WinAVR. Частота процессора 8МГЦ. 1. Нужно из процессорного фарша запустить один таймер с периодом 0,1 миллисекунды (10КГц) и вызывать прерывание, с которым я смогу уже работать. 2. Опционально - запустить интерфейс TWI для подключения LCD_I2C дисплейчика. Не получится - подключу кучей проводков, мне не жалко. 3. Опционально - для отладки интерфейс USART, мне же интересно, что там внутри творится. С остальным, уж надеюсь, я сам справлюсь. Было бы просто сказочно здорово, если бы кто-то скинул пустой проект для студии с настроенными таймерами (ну и остальные мои хотелки , по желанию). Спасибо за внимание и помощь. Исторический экскурс в недавнее прошлое. Кут, как говорится, хере. Есть микроконтроллер ATMega128L, на макетке. Как я его припаивал - это можно было книгу снимать и в Ералаш показывать Теперь задача усложнилась стократно - надо делать следующий шаг. Раньше все с ардуинами в основном игрался, там было легко, радостно и незамысловать: накидал 50 строк кода, скомпилил, получил. Это если скомпилилось и в проц влезло Сейчас интереснее - нужный проц ардуиной не поддерживаются, так что приходится морщить лоб и надувать щеки А не получается. И вот я тут. Имею непреодолимое желание довести до ума станочек по вытяжке бутылок в филамент. Причем, в силу некоторых обстоятельств, на этом неудобном процесоре, ATMega128L. Тактирую его от внутреннего RC осциллятора, чтобы поменьше паять. Да и все равно нет у меня кварца на 8МГц (процессор-то с буковкой L). Долго выбирал среду, чтобы и функционал имелся, и побесплатней, и чтоб разобраться смог. Остановился в итоге на связке AVR Studio 7 + WinAVR. Программатор к студии привязал, компилятор тоже. Ну, наверное привязал - вроде бы компилирует, а вроде бы и нет. Написал блинк на делаях - мигает. А имена регистров из интернетов - не принимает почти никогда. Или ругается хз на что. Пробовал генерить код в кодевижене - он не компилируется, т.к. студия, зараза такая, не понимает имен регистров. Или я не понимаю студию, тоже вполне себе вариант. Пробовал весь проект в кодевижн запихать - там в пломатой демо версии не работает USART. Да и в 4К кода я точно не помещусь, я жирный Пробовал настрочить во FlowCode - уперся в TWI. Правда, если не использовать эту шину, то FC мне очень и очень импонирует, как-то там все ясно и понятно, наглядно. Прошивал процессор всякими ардуинами, заточенными под 128 мегу - тоже лажа, таймеры не работают. В общем, вот такой вот цирк с конями. Надеюсь на вашу подсказку. В гугель прошу не посылать, я только что оттуда, весь по-уши в гуглище. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
солар Опубликовано 30 апреля, 2022 Поделиться Опубликовано 30 апреля, 2022 Установи CodeVizion AVR. Там есть замечательный визард. Если претит писать в этой IDE, то скопипасти получившийся код в студию. 0 Я не раздаю удочки. Я продаю рыбу. Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
zeconir Опубликовано 30 апреля, 2022 Поделиться Опубликовано 30 апреля, 2022 https://static.chipdip.ru/lib/059/DOC000059753.pdf Все, больше ничего не нужно. 0 И пусть судьба не справедлива, Жизнь игра - играй красиво! И что б не кикнули тебя, Не злить Админа, юзверя! Люблю "спасибки" Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Ушик Опубликовано 30 апреля, 2022 Автор Поделиться Опубликовано 30 апреля, 2022 2 часа назад, солар сказал: Установи CodeVizion AVR. Там есть замечательный визард. Если претит писать в этой IDE, то скопипасти получившийся код в студию. Помилуйте, CodeVision - чудесная среда! Особенно из-за этого генератора начального кода, для начинающих - это просто подарок. Более "нубофрендский" визард мне попадался однажды в одном продукте, на который так и не нашелся ключик. Уже забыл название, давно это было. Я генерю новый проект в Кодевижене - чисто посмотреть, как будет работать таймер, подергать светиком - проверить затею, так сказать. В генераторе кода включаю таймер (перебрал все три), TWI и USART0. На выходе получаю простыню в 2 листа и отказ компилироваться в демонстрационном режиме. Т.е. софтина таблетку не прохавала. Плюс так и не заработал USART из того же генератора кода и примера из встроенного хелпа. Если бы не это странное обстоятельство, то я писал бы там, а не тут Попробую, пожалуй, поставить из другого источника. Так что кода, в котором я бы просил помочь разобраться - не существует. Я прошу помочь стартовать в AVR Studio, привести небольшой пример на Си конкретно для моего процессора (ATMega128), чтобы я дальше уже сам мог копаться. Дататашит читаю уже неделю, уже скоро до ерраты доберусь Есть мысль его воскурить после плотного ужина, но что-то сомневаюсь, что в меня влезет 400 страниц 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
zeconir Опубликовано 30 апреля, 2022 Поделиться Опубликовано 30 апреля, 2022 1 час назад, Ушик сказал: Так что кода, в котором я бы просил помочь разобраться - не существует. Я прошу помочь стартовать в AVR Studio, привести небольшой пример на Си конкретно для моего процессора (ATMega128), чтобы я дальше уже сам мог копаться. Это как? Если есть желание разобраться - человек разбирается, благо в сети тонны информации. Если нет желания - ... тут думаю понятно. Ок. Допустим, у вас вызывает трудности "... Стартовать в AVR Studio ...". #include <avr/io.h> #include <avr/interrupt.h> int main(void) { /* Код инициализации таймера */ //TCCR1A = //TCCR1B = //TCCR1C = //OCR1A = /* Настройка прерываний */ //TIMSK = /* Глобальное разрешение прерываний */ //sei(); while (1) { } } ISR(TIMER1_COMPA) { /* Выполнение действий в прерывании */ } Вот вам структура. Вот еще ссылка на материал https://narodstream.ru/avr-urok-10-tajmery-schetchiki-preryvaniya/ . Но, если у вас сложности на таком этапе - тут не про конкретный контроллер (который, как и любой другой 8-битный AVR, вполне типовый), спрашивать нужно, а учить язык программирования. Про даташит я не просто так упомянул - в нем все расписано. Пройтись по закладкам в pdf занятие не долгое (и да, часто достаточно смотреть только назначение регистров). P.S. AVR Studio 7 не существует в природе, есть AtmelStudio 7. P.P.S. В AtmelStudio 7 используется компилятор avr-gcc, он же, в далеком прошлом - WinAVR. И что куда вы там подключали, а главное зачем, для меня большая загадка. 1 И пусть судьба не справедлива, Жизнь игра - играй красиво! И что б не кикнули тебя, Не злить Админа, юзверя! Люблю "спасибки" Ссылка на комментарий Поделиться на другие сайты Поделиться
Ушик Опубликовано 30 апреля, 2022 Автор Поделиться Опубликовано 30 апреля, 2022 Вот, как раз такой шаблон я и просил Спасибо. Скопировал его, отправил на компиляцию - получил ошибку "Severity Code Description Project File Line Warning 'TIMER1_COMPA' appears to be a misspelled signal handler, missing __vector prefix". Я так понимаю, нужно указать где-то вектор на этот обработчик? Завтра снова буду отсиживать задницу в поисковиках. Наверное, Вы правы, говоря о необходимости последоватльно учить предмет. И да, особого желания вникать в тонкости и толстости выбранных инструментов у меня нет. Вполне согласен, если цель будет достигнута не самым оптимальным образом. Мне нужен не очень мощный инструмент, с помощью которого я смогу сделать то, что мне надо. Главное, чтобы он был понятным. В идеале - натыкал чекбоксов и получил шаблок. Как в том же Кодевижене. А все эти глубоко нераскрытые сверхвозможности хорошей системы - а AtmelStudio я считаю хорошей системой - боюсь, что они не пригодятся. И хватит об этом. Еще раз спасибо за шаблончик П.С. Для меня оказалось открытием, что Студия использует ВинАвр "из коробки". В гуглях, посвященных старту со Студией почему-то сразу подключается внешний компилятор, программатор, а потом выкатывается блинк 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Ушик Опубликовано 14 мая, 2022 Автор Поделиться Опубликовано 14 мая, 2022 Доброого здровья, уважаемые, с вами снова доктор Уш и программа "Кто хочет побыть гуру?" Продолжаю играться с этим страшным процессором, ATMega128. Таймер худо-бедно одолел и он уже таймерит, кажется. Теперь у меня новый вопрос - ADC. Замучался камень перешивать, поэтому "собрал" макетку в Протеусе - пусть сперва заработает сферический процессор в вакууме, а там дальше будем посмотреть Подключение - верх лаконичности: потенциометр между шинами питания, средний выход завожу на ножку PF0/ADC0, показания вывожу на LCD, тоже виртуальное. При изменениях положения рукоятки потенциометра напряжение на линии меняется - проверяю проеусовским измерителем. А в паршивке - всегда считывается 1023. Перелопатил кучу примеров. Пробовал в Кодевижене в генераторе начального кода проинициализировать ADC. Из даташита собирал тоже самое ручками. Бухал неделю, расширил сознание вдвое. Но все тщетно, все равно считывается 1023. А теперь вопрос знатокам - какого, понимаешь, хрена? Вот такую инициализацию и чтение показаний заталкиваю в Atmel Studio 7, используется "нативный" компилятор си. Сигнал снимается с ножки 61 (PF0/ADC0). AVCC соединен с питанием. Спойлер //----------------------------------------------------------------------------------------------------- // Voltage Reference: AVCC pin #define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR)) //----------------------------------------------------------------------------------------------------- // ADC initialization // ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: AVCC pin void ADC_Init (void) { ADMUX=ADC_VREF_TYPE; ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); SFIOR=(0<<ACME); } //----------------------------------------------------------------------------------------------------- // Read the AD conversion result unsigned int read_adc(unsigned char adc_input) { // Voltage Reference: AVCC pin //#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR)) ADMUX=adc_input | ADC_VREF_TYPE; // Delay needed for the stabilization of the ADC input voltage _delay_us (10); // Start the AD conversion ADCSRA|=(1<<ADSC); // Wait for the AD conversion to complete while ((ADCSRA & (1<<ADIF))==0); ADCSRA|=(1<<ADIF); return ADCW; } Буду признателен, если поможете запустить этот кусок проекта Спасибо. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
korsaj Опубликовано 14 мая, 2022 Поделиться Опубликовано 14 мая, 2022 Нога AVREF подключена? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Ушик Опубликовано 14 мая, 2022 Автор Поделиться Опубликовано 14 мая, 2022 38 минут назад, korsaj сказал: Нога AVREF подключена? Вот! Нет, эту ножку я оставил неподключенной. Подключил AREF и AVCC к питанию - и картинка ожила! Теперь эта часть проекта работает корректно. Спасибо 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
korsaj Опубликовано 14 мая, 2022 Поделиться Опубликовано 14 мая, 2022 Внимательней нужно быть 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Ушик Опубликовано 15 мая, 2022 Автор Поделиться Опубликовано 15 мая, 2022 Да, согласен и признаю - невнимательность сгубила много чего хорошего. Забавно получилось: стоило вчера разместиь этот крик о помощи (разобраться с ADC), как буквально через час наткнулся на статью, где после обычной таблички с описанием битов регистров говорилось о необходимости подключения внешнего ИОНа, если он задействован. Прямым текстом, черным по-человечески - прямо мой вариант Но Ваше уточнение все равно очень четко и смачно ткнуло меня носом в самую суть проблемы, так что звание "заслуженный гуру форума" Вы полчаете вполне оправдано Еще раз спасибо Дальше по идее проекта уже должно быть попроще - сиди и кодь алгоритм, настройки железа закончены. Прямо сплошная ардуина, тьфу ты, будь она неладна 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.