Поиск сообщества
Показаны результаты для тегов 'avr'.
Найдено: 194 результата
-
Собственно сабж. Цены умеренные.
-
Доброго дня! Не могу разобраться откуда ошибка прет, AVR USART RX Frame Error, на прямую все работает, когда RE/DE притягиваю к питанию тоже все ОК. в Этом случае линия всегда занята. void UART_Int(){ UCSRB|=(1<<RXCIE) | (1<<TXCIE) | (1<<RXEN)| (1<<TXEN) ; UBRRH=0; UBRRL=103; } void UART_Send(uint8_t data) { LAN_PORT SET_B(LAN_PIN);//занимаем линию while(!(UCSRA & (1<<UDRE))); UDR = data; } //Вектор при завершении передачи ISR(USART_TXC_vect) { LAN_PORT CLR_B(LAN_PIN);// отпускаем линию } int main(void) { /**Config*/ LAN_DDR SET_B(LAN_PIN); LAN_PORT CLR_B(LAN_PIN);// В режиме чтения UART_Int(); sei();//разрешаем глобально прерывания /* Replace with your application code */ while (1) { UART_Send(172); _delay_ms(1000); } }
-
Коллеги-любители электроники! Давно и почти безуспешно пытаюсь распродать излишки абсолютно новых электронных компонентов. На сегодняшний день, к сожалению, они уже не являются последним словом техники, но параметры очень неплохие, ассортимент, в основном - это силовая электроника (IGBT, драйверы для них, Fast и Ultrafast диоды), а так же различные микросхемы. Есть и б/у вещи, с гарантией работоспособности. Вся электроника "настоящая", т.е. была куплена у официального дилера (это я к тому, что 100% гарантия от китайских подделок), цены, с моей точки зрения, очень нормальные - в среднем в 2 раза ниже, чем сейчас можно найти. Но и торг особо никто не отменяет. Чтобы не сильно засорять тему картинками и т.п., даю ссылку, где почти все мои "излишки" представлены в виде интернет-магазина (не считайте рекламой - просто так вышло: долго там пытался распродаться, а теперь оплаченный срок магазина истекает). По условиям размещения товаров я не могу показывать более 40 позиций, на самом деле есть и еще... Например, грамм 400 микросхем 564-й серии (никель, но есть и Au), пол-литровая банка транзисторов (от МП25 до КТ859 - пластик и металл), куча КУ202Н... В общем всего много. Если проявите интерес - выложу полный перечень.
-
Добрый вечер, помогите разобраться с кодом. Делаю термометр, с возможностью, выставления температуры срабатывания рэлле с помощью энкодера. Проблемы следующие. Не срабатывает реле, и отклик на энкодер идет слишком долго. То есть пару раз провернешь и только потом переменная увеличивается. По отдельности проекты работали. Общий код: #include <mega8.h> int NewState,OldState,upState,Temp,downState,count_1; // unsigned char trig; float temper; #asm .equ __lcd_port=0x12 ;PORTD #endasm #include <lcd.h> #include <stdio.h> #include <delay.h> // 1 Wire Bus functions #asm .equ __w1_port=0x18 ;PORTB .equ __w1_bit=2 #endasm #include <1wire.h> #include <ds18b20.h> #pragma warn- /* eeprom */ eeprom int temp_eep; #pragma warn+ interrupt [TIM1_COMPA] void timer1_compa_isr(void) { NewState=PINB & 0b00000011; if(NewState!=OldState) { switch(OldState) { case 2: { if(NewState == 3) upState++; if(NewState == 0) downState++; break; } case 0: { if(NewState == 2) upState++; if(NewState == 1) downState++; break; } case 1: { if(NewState == 0) upState++; if(NewState == 3) downState++; break; } case 3: { if(NewState == 1) upState++; if(NewState == 2) downState++; break; } } OldState=NewState; } if(trig==1) // если флаг активен { if(OldState==NewState) // если энкодер в покое то увеличиваем счетчик {count_1++; if(count_1==5000) // если счетчик дотикал до 5 секунд {temp_eep=Temp; // пишем данные в еепром count_1=0; //обнуляем счетчик trig=0; // обнуляем флаг } } } TCNT1H=0x00; TCNT1L=0x00; } void main(void) { char lcd_buf[17]; char lcd_buf2[17]; // Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=P State0=P PORTB=0x03; DDRB=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 1000,000 kHz // Mode: CTC top=OCR1A // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x0A; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x03; OCR1AL=0xE8; OCR1BH=0x00; OCR1BL=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x10; // Global enable interrupts #asm("sei") lcd_init(16); w1_init(); ds18b20_init(0,-20,50,DS18B20_12BIT_RES); Temp=temp_eep; //Выгружаем данные из памяти while (1) { if (upState >= 4) { Temp++; upState = 0; trig=1; // ставим флаг } if (downState >= 4) { Temp--; downState = 0; trig=1; // ставим флаг } temper=ds18b20_temperature(0); if (temper<=Temp) {PINC.1=1;} else {PINC.1=0;} sprintf(lcd_buf,"t=%.1f\xdf""C",temper); ////0b 99 sprintf(lcd_buf2,"Temp=%d\xdf""C",Temp); lcd_clear(); lcd_gotoxy(0,0); lcd_puts(lcd_buf); lcd_gotoxy(0,1); lcd_puts(lcd_buf2); delay_ms(10); }; } Проект термометра: #include <mega8.h> #include <delay.h> // 1 Wire Bus functions #asm .equ __w1_port=0x18 ;PORTB .equ __w1_bit=2 #endasm #include <1wire.h> #include <ds18b20.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x12 ;PORTD #endasm #include <lcd.h> #include <stdio.h> char lcd_buf[17]; void main(void) { float temper; lcd_init(16); w1_init(); ds18b20_init(0,-20,50,DS18B20_12BIT_RES); while(1) { temper=ds18b20_temperature(0); sprintf(lcd_buf,"t=%.1f\xdfC",temper); lcd_clear(); lcd_puts(lcd_buf); if (temper<=18) {PINC.1=1;} delay_ms(1500); }; } При сравнении переменных temper<=temp ничего не происходит. пробовал Temp заменить числом как во втором примере, тоже ноль реакции. Второй пример работает. Компилятор ошибок не выдает. Пишу в CV AVR. Схема собрана в железе.
-
Здравствуйте. Программирую avr через COM-порт, но это неудобно, комп в котором есть порт не всегда доступен, плюс подключаться нужно напрямую к материнке (не выведен), и выходит так, что саму программу я пишу в codevision-avr на ноуте, потом переношу на флешке ее на другой тот комп, там через uniprof заливаю скетч. Совсем неудобно. Заказал в китае usbisp, но он где-то затерялся в пути (уже несколько раз вылетел с аэропорта, и всё). Решил пока что использовать Arduino Uno в качестве программатора, и тут столкнулся с некоторыми проблемами: 1. Я хотел бы программировать НЕ через Arduino IDE, но все примеры которые я нашел - именно через нее (мне кажется это будет пустая трата памяти). Ардуинку использовать только в качестве программатора. 2. Ладно, пока я не нашел решения первого пункта, решил прошить через Arduino IDE в Ubuntu, но никак не хочет появляться плата attiny13 в выборе плат. Устанавливал архив (там где hardware и т.д.) - не помогло, возможно не туда поставил, подскажите пожалуйста для Ubuntu путь, где он должен быть, в примерах винда. 3. Забил. Взял другой ноут с виндой, установил IDE, устанавливаю драйвер для ch340 - винда блочит, говорит "без подписи - значит не рабочий" (а везде в описаниях так радужно, никаких проблем). Ладно, отключил в винде проверку цифровой подписи - при установке драйвера вылетела ошибка по таймауту... Жесть! Подскажите хоть по одному пункту, пожалуйста.
-
Прошу помощь (теория) по стабилизации оборотов коллекторного двигателя с помощью оптопары. Есть двигатель 100 в,400 ватт ,на валу диск с оптопарой, 24 отверстия, хочу регулировать обороты ШИМом ,но чтоб обороты более менее были стабильны. Подключил двигатель через мост ,транзистор к avr, регулировка "просто" ШИМ- регулируется но момент на низких оборотах зависит от нагрузки, на средних нормально. Задействовал диск- ждем 0, как только 1 то делаю подсчет таймером ,0 стоп и после высчитываю число в таймере, в зависимости от эталона делаю или меньше OCR или больше. Если двигатель не раскрутился (таймер переполнился) то добавляю Х число -"небольшой рывок" . В теории вроде нормально, но в реале- двигатель стартует и потом как бы "качается" плавно растут и падают обороты. Кто может подсказать что делаю неправильно? Подозрение- что мало время обработки. Или подсчитывать каждый импульс. Мк работает на 8 МГц. PS. Хочу стабилизировать от 10 оборотов. Пробовал- если разница эталона и числа таймера большая- добавлял (убавлял) OCR немного больше, но только хуже
- 8 ответов
-
- двигатель
- стабилизация
-
(и ещё 1 )
C тегом:
-
Решил сделать ЧПУ. Нашёл схему контроллера шагового двигателя на Atmega8(протокол Step\Dir). Всё собрал и столкнулся с такой проблемой, не понимаю какие фьюзы нужно прошивать. В статье есть только вот этот скриншот. Поискал в интернете нечего не нашёл. Может кто знает что за программу использует автор стати или как разобраться в том что на скриншоте.
-
Доброго времени суток. Требуется помощь в переделывание прошивки для работы сервопривода. Я сам так и не разобрался, теперь прошу помощи. Готов оплатить труд, Вообщем имеется код прошивки под Ардуино на атмеге 328 и нужно изменить прошивку на "чистый" С++. UselessMachine.pde
-
Использование модуля WTV020-SD с микроконтроллером AVR
Graminit опубликовал тема в МК для начинающих
Доброго времени суток, решил собрать небольшую схемку с участием микроконтроллера Atmega16A и звукового модуля WTV020-SD. Итак, у меня есть 5 файлов, мне нужно по команде от микроконтроллера воспроизводить любой из них. В сети вроде бы много инфы по этому модулю, только вот ни как установить "режим" воспроизведения, ни примеров кода на си я не нашёл. Буду благодарен за подробное объяснение. -
Доброго времени суток всем. В данный момент работаю над небольшим проектом. Имеется готовая модель rc-вертолета ( T605 SHUTTLE ), необходимо поставить на него микроконтроллер, гироскоп и акселерометр (думаю использовать MPU-6050 и MPU-9250) и написать для него мозги. МК должен принимать данные с датчиков, выполнять работу по стабилизации вертолета, посылать ШИМ-сигнал. Какой лучше подобрать микроконтроллер, который бы подходил под поставленную задачу ? Пока думаю над atmega 128a (просто потому, что имел с ним дело уже). P.S. если с программированием проблем возникнуть не должно, то как это всё подобрать, установить, спаять и тд понятия не имею, поэтому буду благодарен любым советам на эту тему Спасибо.
- 12 ответов
-
- микроконтроллеры
- avr
-
(и ещё 3 )
C тегом:
-
Вопрос. Почему не выполняется на atmega328 команды? Тестировал в протеусе на частоте 8 мгц (в настройках проекта 20 мгц, но думаю на это не так сильно должно влиять). На микроконтроллере запущен аппаратный таймер - работает нормально. Через юарт (настроен только TXD) всё время шлёт: 011111111101111111110... Но сам код не хочет выполняться: while (1) { delay_ms(0.4); // выполнилось при первом цикле PORTD.6=1; // выполнилось при первом цикле delay_ms(0.4); // выполнилось при первом цикле putchar(PORTC.0+PORTC.1*2); // заморозилось и далее не выполняется, но аппаратный таймер работает, юарт флудит (011111111101111111110...) // функцию putchar нашёл в интернете PORTD.6=0; } PORTD.6 - настроен на выход PORTC.0 и PORTC.1 настроены на вход. Включены подтягивающие резисторы. P.S. Проект сделан в CodeVisionAVR с использованием генератора кода.
-
Здравствуйте. Делаю ночник с плавно меняющимися цветами, в корпусе недорогого светильника, который включается в полной темноте. Включение/отключение реализовал через фоторезистор и составной транзистор. Для МК atMega8 в DIP-корпусе места в корпусе уже впритык. Думал напрямую к пинам подключить RGB-светодиод, но, внезапно, обнаружил, что они у меня с общим анодом. На макетной плате собрал с 3-мя транзисторами, работает. Но можно ли обойтись без транзисторов? Это дополнительные 6 элементов... Сейчас задам, возможно, сумасшедший вопрос, но если подключить светодиод катодами к пинам, а анод на +5 вольт ? Будет ли это работать как обратный сигнал ШИМ (т.е. при скважности 10%, обратная величина - 90%)? Или это просто загубит МК?
-
Всем добра! Подскажите, если на плате оставить для пошивки 4 провода: 5В, GND, RX, TX можно ли будет отлаживать Atmega48 и прошивать его не как обычно с помощью (SPI)? Опыта прошивки пока нет, но планирую прошивать с помощью avrdude.
-
День добрый. Поставил для себя задачу создать для своего мотоцикла небольшой компьютер на базе микроконтроллера с выводом информации на дисплей. Кое-какие наработки у меня уже осуществлены и сейчас я стаю перед выбор усовершенствовать свое устройство(получилось очень громоздкая конструкция которая занимает много места и к тому же 2/3 памяти ардуины я задействовал при этом далеко не все еще впихнул) или начинать с нуля. Для начало опишу то что у меня уже есть (осуществлено на базе Ардуино уно, пока что без вывода на экран, но скетч под это у меня уже написан) и что я хочу. Функционал такой: -вольтметр (есть); -термометр (есть); -несколько режимов полуавтоматической смазки цепи (есть как автоматически включающиеся/выключающиеся режимы (считываю сигналы с датчика скорости=>пересчитываю в скорость в зависимости от скорости переключаются режимы, т.е. насос работает либо чаще либо выключается на время либо работает реже), также некоторые режимы включаются вручную с кнопки) - есть, все режимы включаются последовательно; - расчет средней скорости в пути (частично есть); - расчет среднего времени поездки (нет); -расчет расстояния (нет); - считывание данных с нескольких датчиков разного рода(цифровые и аналоговые) и вывод на дисплей(нет, параллельная задача); - вывод на дисплей, еще точно не определился с моделью, пока на примере 5110, но не уверен, нужно что-то по размеру как 5110 но хотелось побольше чем 84х84 для вставления качественных картинок). Собственно вопрос в том по какому пути идти? Оптимизировать задачу на более маленьком ардуино, типа адруино нано (а возможно и на двух) или же начинать с нуля, но тогда встает вопрос о выборе МК (тут я потратив несколько дней пока окончательно запутался) AVR, STM или PIC? Задача планируется как единичная, но хочется получить относительно компактное устройство. П.С. честно читал и искал, но т.к. я "не в теме электроники", мне нужен толчок в нужную сторону Заранее спасибо.
-
Хочется сделать USB осциллограф. Подскажите пожалуйста, какой МК AVR подойдёт для этого лучше всего? Склоняюсь к ATxmega64A4U с частотой дискретизации 2 МГц. Схема аналоговой части уже есть с преобразованием -20...+20В в 0.1...2.4В.
-
Здравствуйте, уважаемые знатоки, форумчане. Рассмотрел много статей и схем, но в одну картину сложить не смог. Все мои навыки с паяльником закончены на трехканальной ЦМУ и подставке для ноутбука с ШИМ-регулятором оборотов куллеров. В МК вообще 0, и программировании тоже, но моя идея без этого жить не будет. Прошу помощи реализовать идею: Хочу сделать лампу на +12В с трех групп светодиодов (СД). 1-я: 2 обычных красных фоновых СД; 2-я: 4 СД ленты по 15 см; 3-я: 4 одиночных ярких светодиода типа Epistar LED 1W white 120lm. И все засунуть в маленький корпус (квадрат 6х6Х3 см) Принцип работы (в чем и заключается вопрос): Есть фонарик китайский, питание 4,5В (на фото), при нажатии кнопки без фиксации кратко один раз он: -включается 1 СД; -вкл +2 СД; -вкл +4СД (гоярт все 7СД); - выкл. Всем заправляет драйвер. Нужен тот-же принцип работы. Один раз нажал - загорелась 1-я группа СД; 2-й раз нажал - загорелась 2-я группа (1-я группа не гаснет) и т.д. Но еще хочу сделать, так сказать, режим Stand-by, в котором кнопка без фиксации будет светиться (кнопка на фото), а все СД выключены и МК в спящем (ждущем) режиме. (4-й раз нажимаешь на кнопку - все три группы СД выключаются и вкл СД на кнопке). У меня есть МК: AT90S1200-12PI, AT90S4433-8PI. Можно ли на них все сделать? Тема: http://forum.cxem.ne...pic=117346&st=0 в которой кнопка без фиксации и режим St-by мне не подходит - много деталей для корпуса. Еще видел похожую тему на форуме. Но там нет режима St-by и СД по очереди выкл с включением следующего. Помогите, пожалуйста, с кодом и схемой по которой все это собирать..
- 12 ответов
-
- светодиоды
- led
- (и ещё 8 )
-
Программатор Громова. Напряжение На Контактах Com-Порта.
A1essandro опубликовал тема в Песочница (Q&A)
Здравствуйте. Пока с Китая идет ардуинка, мне не терпится изучать МК. Купил ATMega8A-PU (по ссылке даташит), USB-программатор к ней нашел за более чем 3 тысячи рублей. Решил прошить программатором Громова. Вывода COM-порта наружу у меня на старом компе не оказалось. Снял крышку - нашел на материнской плате порт COM1. Подключил всё через беспаечную плату, UniProf сообщает, что "МК не откликнулся". Проверил соединения. Проверил, питание, 5 вольт подаю на 7 выход МК, землю на 8. Соединил на всякий случай 22 с 8. Решил проверить напряжения на участках. И был озадачен. Сначала, я обнаружил, что после диода на 4-м пине 0.72 вольта. Далее, приложив положительный щуп на 4-й пин (это тот, который идет на RESET), а отрицательный к GND - я получил -11 вольт (минус 11). Несколько раз перепроверил, не перепутал ли я землю с другим выводом (по цоколевке) - не должен. Правильно ли я понимаю, что это некорректная работа и напряжение?- 27 ответов
-
- микроконтроллер
- программатор
-
(и ещё 3 )
C тегом:
-
Написал слой абстракции для мастера SPI, как программного так и аппаратного. Кому не лень посмотрите что можно исправить или доработать. Единственное, что мне не нравится, что avr-gcc ругается warning'ом на неинициализированную переменную. Я-то знаю, что после 9 сдвигов в ней не останется ни одного родного бита, но как это объяснить компилятору? char SPI_send(char data){ char res,i=7; spi.zip
-
Доброго времени суток! Собрал схему http://cxem.net/izmer/izmer76.php, но не могу запустить LCD экран. Экран MT-16s2h-2ylg и китайский с маркировкой 1602A. (оба рабочие, проверял на другом устройстве). Экран AC162E запускается нормально , но он очень большой. В программировании не силен. На этих двух только квадратики. Подключил Я эти экраны к Arduino uno - работают. Я грешу на инициализацию дисплея. izmer76_dds_generator2.rar
-
Я только начал учить программирование , написал небольшой код для схемы код компилируется и работает ,но вот есть такой баг . Если нажать 2 кнопки, то как надо побегут 2 светодиода . Но если потом пустить обе и нажать первую , снова бегут 2 светодиода . Как это решить? Готовый код не прошу, прошу направить куда копать .Понимаю что по логике должна быть какае-то очистка или сброс на начало . //atmega8 #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> void preset(){ DDRB = 0xFF; PORTB = 0x00; DDRC = 0x00; PORTC = 0xFF; } int main(void) { preset(); while(1) { if(PINC&(1<<(PC1&PC0))) { for (int i=0;i<=7;i++) { PORTB = (1<<i) | (2<<i); _delay_ms(300); } } else { if(PINC&(1<<PC0)) { for (int i=0;i<=7;i++) { PORTB = (1<<i); _delay_ms(150); } } else { if(PINC&(1<<PC1)) { for (int i=7;i>=0;i--) { PORTB = (1<<i); _delay_ms(150); } } else PORTB = 0x00; } } } }
-
Приветствую всех. Решил для своих радиолюбительских нужд собрать переходник из этой статьи. В статье прикреплены драйвера для XP, vista, 32-bit семерки. Но у меня 2 компа и на одном из них винда 8.1. На нём устройство не определяется, ну да ладно. На втором ноутбуке вин 7, но 64-bit. Когда вставляю в него переходник - определяет, как RS-232. Я устанавливаю драйвера по инструкции. В диспетчере задач теперь определяется как Virtual Communication Port и подсвечивается желтым восклицательным знаком. Но ни одна терминальная программа его не видит. Как это исправить? Обязательно нужна вин 7 х32?
- 7 ответов
-
- avr
- attiny2313
-
(и ещё 3 )
C тегом:
-
Четырехразрядный Регистр Сдвига Для Atmega8535
Anton_Photon опубликовал тема в Школьникам и студентам
Здравствуйте, люди Добрые. Нужна помощь. Мне нужно написать на моем контроллере avr atmega8535 четырехразрядный регистр прямого сдвига, то есть параллельный код он преобразует в последовательный и сдвигает его нажатием кнопки вправо( вот видео, начинать смотреть с 2:50)http://ideone.com/RzAt9G вот сам код, все вроде правильно, ошибок не вижу, но на контроллере не работает. Программа задержки нужна для устранения дребезга кнопки. Пожалуйста, найдите ошибку, будьте добры. Схему попытался нарисовать с протеусе, на ней тоже, как и на настоящем контроллере, ничего не работает, хотя в авр студио все летает.- 22 ответа
-
- avr
- atmega8535
-
(и ещё 2 )
C тегом:
-
В данный момент для выполнения разовых работ (в дальнейшем возможно трудоустройство) ищем толкового инженера-электронщика. Работаем с оборудованием для быстрого прототипирования (3d печать) а так же небольшими системами автоматизации. Что делать? Разрабатывать и дорабатывать платы управления а так же их программное обеспечение, для оборудования быстрого прототипирования. В основном AVR и ARM. Что нужно? Опыт разработки работы с микроконтроллерами. Опыт работы работы с 3d принтерами приветствуется. Где? Возможна удаленная работа, но в первую очередь ищем специалиста на "месте", г.Тольятти или Самарская область. Куда писать? Писать в личные сообщения или на почту dmitry [собачка] prototypus.ru