Поиск сообщества
Показаны результаты для тегов 'ATmega'.
Найдено: 52 результата
-
Всем привет. Сделал устройство с семисегментным индикатором,но понадобилось снимаемые значения еще и на пк выводить. А порт UART'а занят,связь нужна симплексная,т.е. в одну сторону. Можно ли как-то вывести инфу на порт В0?Или проще задействовать реализацию железа,а индикатор перебросить на другие порты?
-
Прошу помощи, мозг уже кипит.... Итак, по порядку. Для удобства проектирования устройств вытравил переходник с TQFP на DIP, на плате переходника сразу замкнул лини питания (4, 6 и 18) и земли (3, 5 и 21). Atmega48, 88, 168 и 328 в этом переходнике шьется замечательно, а вот Atmega8 (проверил 4 штуки из разных партий) через этот переходник не шьются и не читаются! При этом, прошитый заведомо мк Atmega8 прекрасно работает в этом переходнике! Так-же мк, которые не шьются в этом переходнике - прошиваются без него тем-же программатором (usbasp). Вот что пишет дудка: avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: error: programm enable: target doesn't answer. 1 avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude.exe done. Thank you. Внимание, вопрос! Почему Atmega8 прошивается при подключении vcc только на 4 пин и gnd только на 21 пин, и не прошивается при полном подключении линий vcc и gnd мк?
-
Друзья помогите разобраться. Приобрел управляемые диоды WS2812 многим уже известные. Поиски доступных для новичка исходников результатов не дали. Сталкивался с скечами для Ардуино, библиотеками NeoPixel. Во первых не забрался, во-вторых принципиально хочу сообразить всё это на на своей плате на Attiny или Atmege. Сам по себе принци понять логику. Из даташита понятно что диды управляются 24битами, таймаутами и т.п., но никак не соображу как послать биты в контроллер. Только начал разбираться с ШИМом. Думал тут чтото подобное. Помогите новичку с самого простого.
-
Помогите с проблемой, собрал устройство все работало отлично до подключения пускателя, часто когда он отключается то либо зависает Atmega (при чем порты остаются включенными или отключенными как были в работе, но программа перестает выполняться), либо отваливается датчик температуры, попробовал подключить осциллограф на питание 5 вольт, идет ровная полоса в момент включения и выключения. Что попробовал сделать: подключил заземление накрыл плату фольгой и то же заземлил Все что перечислил не помогло. подключено все следующим образом, выход контроллера -> транзистор -> реле с диодом, после реле идет пускатель на 220 вольт. Что можно попробовать еще? может попробовать снабер поставить на контактор, уже низнаю что предпринять, понятно что идет выброс, но как его победить
- 65 ответов
-
- atmega
- контактор.
-
(и ещё 1 )
C тегом:
-
подскажите, уважаемые форумчане, заработает ли такая программа? суть её такова: подключаем матричную клавиатуру, 4х3, считываем с неё нажатия кнопок, которые соответствуют цифрам собираем 3-х значное число, которое затем нужно конвертировать из 10-й в 16-ю систему счисления p.s. только начал кодить, поэтому ОЧЕНЬ! прошу: если имеются ошибки, покажите как было и как должно быть, желательно с пояснениями заранее благодарю new.c
-
Делаю устройство, в составе которого есть спидометр. Мк - Atmega32, работающий на частоте 16МГц. Датчик - перфорированный диск+оптопара, 10 импульсов на оборот. Вопрос к знатокам Bascom: насколько точно измеряет длину импульсов команда Pulsein? Можно ли ей мерить длину импульсов и таким образом считать частоту вращения вала? В данный момент реализовано на таймере1, но он понадобился для другой фичи.
-
Тестирую код assembler для AtMega8515, правильные значения на PORTC чередуются с какой-то чушью, значения на порт передаются только в 2х местах в коде может ли это быть ошибкой Proteus?
-
Прошу помочь разобраться в причине странного поведения Atmega8515L суть заключается в следующем: МК принимает по i2c свой slave адрес в следующем такте отвечает ACK и далее должен передать 8 битный код в данном примере (0b10001100), но функция передачи кода иногда запаздывает на случайное число тактов . Кто-нибудь сталкивался с подобным явлением, в чем может быть причина?
-
В процессе выполнения команды MK не выходит из функции (причем на строчку перед закрытием скобки оной попадает). Есть ли какие либо ограничения при программировании на С, учитывает ли компилятор количество хипа, расстояние в 64 адреса для rjmp итд. Каких правил придерживаться чтобы писать грамотный, оптимизированный код?
-
Надо устроить обмен данными между FPGA и Atmega по I2C. FPGA на отладочной плате запитывается по USB от ПК, atmega8515L подключена навесным монтажом. В данный момент атмегу и pull-up резисторы от i2c запитываю от I/O ноги ПЛИС, возникают непонятные перезагрузки ПЛИС, может ли это быть вследствии перегрузки ? И как правильно запитать PULL-UP и Atmega?
-
Доброго времени суток, решил начать потихоньку осваивать МК, т.к схемы собранные на рассыпухи не отличаются высокой точностью и стабильностью. Начал ставить задачи по этапно - моргание светодиодом -> моргание светодиодом после нажатия на кнопку - > моргание светодиодом при нажатии на кнопку в течении 40 секунд-> всё остальное что может делать МК в течении этих 40 сек. На данном моменте застрял на 3-ем этапе, никак не могу разобраться как прикрутить работу таймера к своему коду, листинг прилагаю (1- программа моргания светодиодом 3 раза, после нажатия на кнопку, 2 - изыскания на тему таймера): #include <mega8.h> #include <delay.h> #include <interrupt.h> #include <io.h> #define PD2 2 // Переобозначение 2 пина порта D на его имя. void main(void) { PORTD = 0b10000000; // Подключаем подтягивающий PULL-UP резистор к 2 пину порта D. DDRD = 0b00000000; // Настроим порт D на ввод информации. DDRB = 0b11111111; //Настроим порт D на вывод информации. while(1) // Бесконечный цикл опроса кнопок. { if (PIND &= 1<<PD2) // Считываем 2 пин порта D. { PORTB =0b00000000; // Если 1 (кнопка не нажата), то гасим светодиод. } else { PORTB = 0b00000001; // Если 0 (т. е. кнопка нажата), то зажигаем светодиод. delay_ms(500); PORTB = 0x00000000; delay_ms(500); PORTB = 0x00000001; delay_ms(500); PORTB = 0x00000000; delay_ms(500); PORTB = 0x00000001; } а теперь таймер: #include <mega8.h> #define s; int s; // переменная для хранения секунд // Обработка прерывания по совпадению interrupt [TIM1_COMPA] void timer1_compa_isr(void) { s++; // увеличиваем переменную каждую секунду if(s>59) // обнуляем секунды после 59 { s=0; } TCNT1=0; //обнуляем таймер } void main(void) { TCCR1A=0x00; //настройка таймера TCCR1B=0x05; TCNT1=0x00; //здесь увеличиваются тики OCR1A=0x1E85; //записываем число в регистр сравнения TIMSK=0x10; //запускаем таймер }
-
Продам Платы Валидаторов, бу, рабочие от 50 до 150 рублей плата микросхема 1шт 50р Индикатор жидкокристаллический: BL128128C2CRNHN$, OLED, 128 x 128, RGB, DC/DC - 550рOLED- Displays M00480_VGM128064B0B01 - 340р
- 2 ответа
-
- mfrc531 01t
- atmega
-
(и ещё 1 )
C тегом:
-
Всем добра! Подскажите, если на плате оставить для пошивки 4 провода: 5В, GND, RX, TX можно ли будет отлаживать Atmega48 и прошивать его не как обычно с помощью (SPI)? Опыта прошивки пока нет, но планирую прошивать с помощью avrdude.
-
Продам микроконтролеры ATmega 1284P-AU Производитель ATMEL 100 шт. (на поддоне) - 120 руб.\шт.
- 21 ответ
-
- Микроконтроллеры
- ATMEL
-
(и ещё 1 )
C тегом:
-
Добрый день. Помогите запустить схему в протеусе. Никак не могу ничего сделать ни дисплей ни юарт не работает. Протеус 8,4 сп0 True RMS.zip
- 12 ответов
-
-1
-
Всем привет. Просьба посодействовать в исправлении кода для термометра. Так как сам я в этом новичек, то код собирал из трех чужих проектов. Реализация такова, подключение термопары через микруху Max6675 к Atmega и вывод данных на LCD экран. В архиве прилагаю проект Atme Studio 7 и принт скрин из Протеуса. Ошибка заключается в неправильных показаниях температуры Test1.rar Вот код, чтоб не скачивать проект. #define F_CPU 1000000UL #include <util/delay.h> #include <avr/io.h> #include "max6675.h" #include "LCD.h" uint16_t gettemp(void); //Funktionsdeklarationen void initavr(void); //gettemp () returns absolute Temperature in Temp * 4 °C - in 1/4°-steps // uint16_t gettemp(void){ //Temperatur holen. uint8_t bit = 0, bitnr = 12; //Variablen uint8_t foo1 = 0; uint16_t Rohdata = 0; CS_Port &= ~(1 << CS); //Chip select anlegen for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen bit = 15 - foo1; //Die Aktuelle Bitnr berechnen. SCK_Port |= (1 << SCK); //SCK hi if((bit <= 14) && (bit >= 3)){ //Einfach mal die 12 relevanten von den 16 Bits ausfiltern if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann... bitnr--; //zдhlen wir runter... Rohdata |= (1 << bitnr); // und schieben eine 1 an bit x }else{ //WENN dem NICHT so ist, dann... bitnr--; //zдhlen wir runter... Rohdata &= ~(1 << bitnr); //und schieben eine 0 an bit x } }else{ //weis au nimmer, was das soll. bitnr = 12; } SCK_Port &= ~(1 << SCK); //SCK LO } CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. return Rohdata; //Das ist doch mal was ;D } // getTC() returns 0 if Thermocouple is not connected, 255 if thermocuple is connected // (to enable this feature T- must be connected to GND) uint8_t getTC(void){ //Temperatur holen. //Variablen uint8_t TC = 0; uint8_t foo1 = 0; CS_Port &= ~(1 << CS); //Chip select anlegen for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen //Die Aktuelle Bitnr berechnen. SCK_Port |= (1 << SCK); //SCK hi if(foo1 == 2){ //das 3. bit ist fьr uns relevant. if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann... TC = 0; }else{ //WENN dem NICHT so ist, dann... TC = 255; } } SCK_Port &= ~(1 << SCK); //SCK LO } CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. return TC; //Das ist doch mal was ;D } //Initiates the MAX6675 and IO-pins void init_6675(void){ //AVR initialisieren SO_DDR &= ~(1 << SO); CS_DDR |= (1 << CS); SCK_DDR |= (1 << SCK); //IOs setzen SO_Port |= (1<<SO); //Pullups an. (Wichtig fьr MAX6675, der kann nicht anders, hab ich festgestellt... CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. SCK_Port &= ~(1 << SCK); //SCK LO } int main(void) { init_port();// инициализируем порт ЖКИ lcd_init();// инициализируем ЖКИ init_6675(); while (1) { char buffer[8]; int temp; temp = gettemp(); temp /=4; lcd_gotoxy(0,0);//перемещаем курсор в верхний левый угол sprintf(buffer, "t=%i\xdf\C ", temp); // так как тут не плавающая запятая то числа с запятой записываются так %i.%i, код градуса записывается так \xdf lcd_putstring(buffer); } } вставляете код пользуйтесь тегами [CОDE][/CОDE] редактора сообщений, кнопка <>
-
Четырехразрядный Регистр Сдвига Для Atmega8535
Anton_Photon опубликовал тема в Школьникам и студентам
Здравствуйте, люди Добрые. Нужна помощь. Мне нужно написать на моем контроллере avr atmega8535 четырехразрядный регистр прямого сдвига, то есть параллельный код он преобразует в последовательный и сдвигает его нажатием кнопки вправо( вот видео, начинать смотреть с 2:50)http://ideone.com/RzAt9G вот сам код, все вроде правильно, ошибок не вижу, но на контроллере не работает. Программа задержки нужна для устранения дребезга кнопки. Пожалуйста, найдите ошибку, будьте добры. Схему попытался нарисовать с протеусе, на ней тоже, как и на настоящем контроллере, ничего не работает, хотя в авр студио все летает.- 22 ответа
-
- avr
- atmega8535
-
(и ещё 2 )
C тегом:
-
Добрый день! Есть мысль сделать ИБП с возможностью регулирования выходного напряжения с помощью атмеги, например. Завис на этапе, так сказать, методологии: как будет правильнее делать - регулировать выход обратной связью прямо в TL494 или делать отдельно БП на максимальное напряжение, и отдельно блок управления выходом на отдельном ШИМе? Хотелось бы управлять напрямую TL-кой, но готовых примеров не нашел, опыта построение пуш-пулов нет (пока набираюсь теории, готовлюсь), есть только вопросы по теоретической части. Читаю вокруг контроля мертвого времени и ноги фидбэк (это оверрайд обоих ОУ обратной связи?) - чем из них лучше уменьшать выходное напряжение с помощью МК? В общем, пока одни вопросы. FAQ-и читаю, но, боюсь, потону в подробностях..
-
Доброго времени суток! У меня имеется: - Atmega1284 - Простой COM программатор - hex файл (оригинал прошивки на Си тоже имеется) Как прошить первое с помощью второго? *в начале планировал через PonyProg, но как я понял он с этим МК не захочет работать. Как можно выйти из этой ситуации? P.S. Варианты "Сделай себе нормальный УСБ программатор" не подойдут. Запчастей нет, а если заказывать, то ждать долго, да и зачем его собирать, если я не знаю буду-ли я им пользоваться в дальнейшем. На один раз делать... хм... не охота...
- 1 ответ
-
- AVR
- Программатор
- (и ещё 8 )
-
Добрый день, возникла неприятная проблема с фьюзами. Первоначаль у меня была схема с контроллером AtMega8 с кварцевым резонатором на 16Mhz. Мне пришлось сменить Atmega8 на Atmega168. Но тут возникла проблема с прошивкой. Первоначально фьюзы CKSEL3..0 были выставлены в 0010. то есть частота от внутреннего источника. С помощью Uniprof я прошил эти фьюзы на 0101. Теперь контроллер не откликается и не работает. Умер... соответственно фьзы обратно прошить не могу. Программатор Громмова, чтобы прошить я вытаскиваю контроллер из моей сзхемы и вставляю в программатор, кварцевого резонатора в программаторе нет. Можно ли реанимировать устройство?
-
Добрый день! Стоит задача с компьютера задавать время отсчета таймера собранного на ATmega и семисегментном индикаторе в режиме онлайн. То есть организовать связь для обмена данными с микроконтроллером ATmega. Желательно используя USB дабы не искать компьютер с COM-портом. Подскажите, какой из интерфейсов выбрать исходя из стоимости компонентов и сложности самого решения?
-
Всем доброго времени суток. Забодался каждый раз проводки перетыкать при прошивке ATMEL, развел платки - комутаторы на основные МК. Заказал у братьев нших из Поднебесной платы коммутационные для HV PROG (параллелного программирования). Питание 5в оставил для перемычки (видно на фото). Комплект из 3-х плат ATMEGA 8, 16, 32, 48(P), 88, 164P, 168, 324P, 664P, 1284P, 8535, ATTINY 48, 2313. Имею 5 комплектов. Цена 450 за все 3 платки ("лист" на этой фотографии). Товар находится в Самаре, если почтой то +80р почте.
-
- abr Dragon
- Dragon
-
(и ещё 5 )
C тегом:
-
Здравствуйте, уважаемые форумчане! Хочу реализовать свой "софтверный" SPI под Atmega8. Вообще, общая цель - общение с синтезатором LMX2306. Уже сломал голову от того,- как правильно отослать 21 битные регистры, используя 8-ми битные типы данных. Поэтому захотелось свой SPI с блекджеком, который может отправлять определенное количество бит переменной с выбором направления (MSB, LSB). Не пойму, как мне задать определенную частоту работы для "такого" SPI? Например, хардварный можно инициализировать на частотах osc/4, osc/16 ит.д. Как мне такое же сделать для софтверного SPI? Пишу в Atmel Studio 7