Jump to content

Search the Community

Showing results for tags 'atmega32'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
    • Competition 2019
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube
  • Радиолюбительская доска объявлений exDIY's Надежность и группы продавцов

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 18 results

  1. Здравствуйте. Может у кого есть печатная плата для отладочной платы на atmega8,32,128 в корпусе tqfp или attiny2313. Накопилось много распая с незалоченными камнями и очень хочется пустить их в дело и наконецто научиться хоть как-то программировать. Рисовать печатку самому не хватает опыта. Может у кого есть наработки? Прошу поделиться. Поиск выдает только отладочные платы в дип. А если и есть tqfp то в ардуиновском формате т.е без доп перефирии (же дисплеев,клавиатуры,7 сегментных индикаторов,потенциометров,энкодеров..и.т.д)
  2. Как сделать устройство, выводящие на индикатор время, прошедшее с момента последней перезагрузки контроллера?
  3. Привет. Вот, озадачился такой, на первый взгляд, простой ерундой. Как подключить 24 релюшки к одному микроконтроллеру. Да еще и ножки микросхемы сэкономить. Конечно же 74hc595!!! Да не тут то было. Если с двумя регистрами проблем никаких не возникало, то с тремя, что то пошло не так. Пишу в AtmelStudio на Си. Макро #define DS_PORT PORTD #define DS_PIN 3 #define ST_CP_PORT PORTD #define ST_CP_PIN 4 #define SH_CP_PORT PORTA #define SH_CP_PIN 4 #define DS_low() DS_PORT&=~ (1 << DS_PIN) #define DS_high() DS_PORT|= (1 << DS_PIN) #define ST_CP_low() ST_CP_PORT&=~ (1 << ST_CP_PIN) #define ST_CP_high() ST_CP_PORT|= (1 << ST_CP_PIN) #define SH_CP_low() SH_CP_PORT&=~ (1 << SH_CP_PIN) #define SH_CP_high() SH_CP_PORT|= (1 << SH_CP_PIN) А это функция вывода числа через три последовательно подключенных регистра void output_led_state(unsigned long int __led_state) { SH_CP_low(); ST_CP_low(); for (long int i=0;i<24;i++) { if (((1 << i) & __led_state) == (1 << i)) DS_high(); else DS_low(); SH_CP_high(); SH_CP_low(); } ST_CP_high(); } А тут, в майне, я передаю число. output_led_state(0b000000010000000000000000); Но выводится только 16 бит а не 24!!!!!! Вопрос, что я делаю не так??? В архиве схема и прошивка. proyeck.rar
  4. Добрый день, прошу помочь в реализации протокола общения между Atmega32 и компером ... язык только АСМ, т.к. Си плохо разумею))) Ниже привожу протокол: ********************* система команд: <ID>, <comand>, <data> <ID> это число или слово в ASCII <data> это слово размером 1 байт <comand>: -SA -- установить значение по напряжению, следующий байт значение от 0 до 255 -SV -- установить значение по току, следующий байт значение от 0 до 255 -M1 -- установить режим работы - ток -M2 -- установить режим работы - напряжение -M3 -- установить режим работы - импульсный -D -- установить все параметры по умолчанию -N -- включить ус-во -F -- выключить ус-во -RA -- передать мастеру действующее значение тока, следующий байт значение от 0 до 255 -RV -- передать мастеру действующее значение напряжения, следующий байт значение от 0 до 255 -RT -- передать мастеру значение температуры, следующий байт значение от 0 до 255 -RM -- передать мастеру характер нагрузки ток/напряжение, в ответ следует значение 'A' или 'V' в ASCII -RQ -- передать мастеру состояние аварии, если ус-во в штатном рехжиме то возвращается значение "0", если произошла остановка работы по причине аварии, то возвращается "1" - перегрузка по току во вторичной цепи, "2" - КЗ в нагрузке, "3" - температура 95С и выше, в ASCII ********************* может кто может оказать поддержку? Рассматриваю также денежную компенсацию за активную помощь в реализации кода ...
  5. Здравствуйте. Захотелось собрать переговорное устройство http://cxem.net/mc/mc62.php Схемы в архиве Схемы.rar Программа написана на C в ICCAVR. В архиве исходники.rar есть 2 файла исходников: на С (.с) и на Asm (.s), каким-то чудом у меня получилось скомпилировать файл Asm в .hex intercom.rar Составил "кусок" цифровой части схемы в Протеусе (LCD 20x02) atmega32.rar А при компиляции С файла появляются такие ошибки: 1)Сначала была ошибка отсутствия библиотеки #include <shortnametype.h> , скачал и добавил файл SHORTNAMETYPE.rar в папку с библиотеками компилятора ICCAVR. 2)После этого появились ошибки такого плана Помогите исправить эти ошибки. Рабочий исходник на С, нужен что-бы переделать программу (укоротить символы) под LCD 16x02 (у меня их много, да и цена у него минимальная по сравнению с LCD 20x02). Собрал на макетке (LCD 16x02) Уже развел печатку цифровой части, под LCD 16x02 Заранее благодарен за Ваши ответы.
  6. Всем доброго времени суток! заимел на халяву 5 штук экранчиков от телефона Siemens CX65 на чипе L2F50. я для того чтобы поиграться собрал аж целую плату (архив). плата задумывалась как обучающее руководство для самого себя модуль сенсорных "клавиш" 3х4 и экран. для сенсорной клавиатуры свой отдельный контроллер (Attiny2313 ) для экрана свой. клавиатурный контроллер худо-бедно запрограммировал и работает. его задача только и только опрос клавиатуры и отсылка кода нажатой "клавиши" поскольку я представления не имел как и что делать с экраном я сделал как так сделал: контроллер экрана на отдельной плате подключается шлейфом к экрану. сейчас я хочу начать с подключения экрана к отладочной плате PinBoard2. модуль с AtMega32 затем как освою работу (со схемой разберусь и с прошивкой) с этим дисплеем в связке с AtMega32 уже соберу окончательную плату. в чём у меня затык: у кого нибудь есть рабочие исходники для работы этим экраном? я много каких исходников нашёл, заливал в контролер чтобы банально хеллоу ворд вывести.... толи лыжи не едут толи руки кривые... собственно с этого и хочу начать освоение работы с экранами... среда программирования Avr Studio 4.19 Благодарю за внимание! Clock_2Lcd_Kb_Ir.7z
  7. Я начинающий в языке си. и у меня возникла проблемка : 1) Хочу сделать перебор символов хранящихся в lcd. 2) Если русские символы присутствуют в lcd то создать таблицу в которой будет указанны правильные символы (т.е. по usart прилетает к примеру буква ю . так как она выходит за приделы английских букв таблицы lcd с английскими буквами, то ищем переадресацию(другой адрес для символа) в нашей таблице после чего выводим на lcd букву ю. чтоб начать осуществлять эту идею мне не хватает малости- как из числа (от 0 до 255) преобразовать в символ и как из символа получить число привожу код программы mk #define F_CPU 1000000UL // указываеться честота МК #include <avr/io.h> // основная библиотека #include <util/delay.h> // библиотека для паузы #include <stdio.h> #include <stdlib.h> #include "lcd.h" // библиотека для работы с жк экраном void lcd() { init_port(); // инициализируем порт A для lcd lcd_init(); // инициализируем ЖКИ дисплей lcd_clear(); } // работа с usart void uart_init( void ) { //настройка скорости обмена UBRRH = 0; UBRRL = 12;// 4800 скорость //8 бит данных, 1 стоп бит, без контроля четности UCSRC = ( 1 << URSEL ) | ( 1 << UCSZ1 ) | ( 1 << UCSZ0 ); //разрешить прием и передачу данных UCSRB = ( 1 << TXEN ) | ( 1 <<RXEN ); } unsigned char uart_getc( void )//прием данных с ПК { //ждем приема байта while(!( UCSRA & ( 1 << RXC )) ); //считываем принятый байт return UDR; } void uart_putc( unsigned char g )//передача данных на ПК { //ждем окончания передачи предыдущего байта while(( UCSRA & ( 1 << UDRE ) )==0 ); UDR = g; } void uart_puts( char *str ) { unsigned char g; while( ( g = *str++ ) != 0 ) { uart_putc( g ); } } int main( void )//основная программа { lcd();// инициализируем жк uart_init();// инициализируем usart //unsigned char g; //uart_puts( "Hello uart\r\n" );// r,n- переход на новую строку int x=0; int y=0; int m=0; //int b=0; while( 1 ) // бесконечный цикл программы { lcd_clear();// очистка экрана жк lcd_putstring("zapusc");// выводим zapusc на жк _delay_ms(500);// пауза 0.5 секунды uart_puts("H" );// отправить H по usart // очистка экрана жк lcd_clear(); for (m = 0; m <= 81; m++) { char f = uart_getc();// присваеваем с принятые байты if(f == '.') {//проверяем условие c = '.' означающее конец строки if(m<41){m=42;y=1;x=0;}//проверяем условие если первоя строка перепрыгиваем на вторую else{m=82;}//получаеться вторая значит заканчиваем работать } else {// если точка не пришла то выводим символ lcd_gotoxy (x,y); lcd_putchar( f ); _delay_ms(2000); x++; } } //for (b = 0xA0; b <= 0xE6; b++){ //lcd_gotoxy (0,0); // lcd_putchar( b ); // _delay_ms(100); //} m=0; x=0; y=0; } return 0; } lcd.h //проект написан для lcd использовалась атмега32 #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <stdlib.h> //#define F_CPU 1000000// не на что не влияет #define LCD_E_SET PORTD|=0x04 // установка лог. «1″ на линии E #define LCD_E_CLR PORTD&=0xFB // установка лог. «0″ на линии E #define LCD_RS_SET PORTD|=0x8 //установка лог. «1″ на линии RS #define LCD_RS_CLR PORTD&=0xF7 // установка лог. «0″ на линии RS #define LCD_COMMAND 0 // макрос, указывающий функции, что передаются команды #define LCD_DATA 1 // макрос, указывающий функции, что передаются данные #define BUF_SIZE 128//размер памяти void init_port()//инициализация портов, подключенных к жки { DDRD=0xFC;//настраевает на выход сигнала на порту PORTD=0x00;//на выходе устанавливаються 0 } void lcd_putnibble(char t) //функция передачи тетрады в жки { t<<=4; // сдвиг в лево (пример) 0b0101 1100<<4 = 0b1100 0000 LCD_E_SET; // установка лог. «1″ на линии E _delay_us(50); PORTD&=0x0F; // стираем прошлую половинку байта PORTD|=t; // рисуем половинку байта на порте A LCD_E_CLR; // установка лог. «0″ на линии E _delay_us(50); } /* функция передачи байта в жки. char c — сам байт char rs — переменная, указывающая что передается: rs = 0 — команда (устанавливается линия RS) rs = 1 — данные (сбрасывается линия RS) */ void lcd_putbyte(char c, char rs) { char highc=0; //переменная для хранения старшой части байта highc=c>>4; //заносим старшую часть байта в переменную if (rs==LCD_COMMAND) LCD_RS_CLR; //определяем что передаем данные или команду else LCD_RS_SET; lcd_putnibble(highc);// передачи тетрады в жки lcd_putnibble(c); } void lcd_putchar(char c) // то же самое что и lcd_putbyte (почти) { char highc=0; highc=c>>4; LCD_RS_SET; lcd_putnibble(highc); lcd_putnibble(c); } void lcd_init() //функция инициализации ЖКИ { _delay_ms(15); //ждем 15мс после подачи питания на жки. lcd_putnibble(0b00000011); //0b00000011<<4 = 0b00110000 (выбор 8битного режима) _delay_ms(4); lcd_putnibble(0b00000011); //0b00000011<<4 = 0b00110000 (выбор 8битного режима) _delay_us(100); lcd_putnibble(0b00000011); //0b00000011<<4 = 0b00110000 (выбор 8битного режима) _delay_ms(1); lcd_putnibble(0b00000010); //0b00000010<<4 = 0b00100000 (выбор 4битного режима) _delay_ms(1); lcd_putbyte(0x2A, LCD_COMMAND); //0b00101000 (4 битный режим+подкл 2ую строку)поменял 28->2A _delay_ms(1); lcd_putbyte(0x0C, LCD_COMMAND); //0b00001100 (включаем изображение) _delay_ms(1); lcd_putbyte(0x06, LCD_COMMAND); //0b00000110 (смещение курсора влево) _delay_ms(1); } void lcd_clear() // функция очистки дисплея и возврата курсора в начальную позицию { lcd_putbyte(0x01, LCD_COMMAND); _delay_us(1500); } //* функция перемещения курсора в заданную позицию //col — номер знакоместа по горизонтальной оси (от 0 до 15) //row — номер строки (0 или 1) */ void lcd_gotoxy(char col, char row) { char adr; adr=0x40*row+col; adr|=0x80;//80-НАЧАЛО СТРОКИ lcd_putbyte(adr, LCD_COMMAND); } void lcd_putstring (char stroka[])// разбивка строк на буквы { unsigned char i; for(i=0;stroka[i]!='\0';i++) { lcd_putchar(stroka[i]);// буквы в строке 1-2-3-..... } } если решите опробовать код usart лучше отключить т.к. он будет ждать пока не прилетит как минимум две точки
  8. Здравствуйте уважаемые форумчане! Решил связать аудио процессор TDA7310 (управление громкостью, басом, тембром и т.д.) с atMega32 (выступает в роли мозгов). Согласно даташиту TDA7310 управляется либо по шине I2C (была выбрана она), либо по шине S-bus. Проблема заключается в том, что не производится управление и как мне кажется тут два варианта: 1.Ошибки схеме 2.Ошибки в алгоритме 1.Начну со схемы: Подключение производилось согласно даташиту с небольшими изменениями: SDA и SCL подключаются к соответствующим выводам atMega32(далее МК) + через подтягивающие резисторы номиналом 4.7кОм на шину питания МК. Возникли сомнения по поводу разного напряжения питания, TDA7310 - 9В, МК - 5В. Но логические уровни "подходят": Логический "0" (max) - TDA7310 (1В) atMega32 (0,7В) Логическая "1" (от) - TDA7310 (3В) atMega32 (4,2В) 2.Алгоритм: Формат сообщений изображен на рисунке ниже. В соответствии с форматом, использую вот такую функцию: void I2C_SendPocket (unsigned char value,unsigned char adres_rw) { I2C_StartCondition(); // генерируем условие СТАРТ I2C_SendByte(adres_rw); //оправляем адрес устройства+бит запись I2C_SendByte(value);//отправляем байт данных I2C_StopCondition();//генерируем условие СТОП } Адрес TDA7310: 10001000 Данные (value): увеличивающаяся на 1 переменная, т.е. 00000001...00011111 Прикрепляю документацию на TDA7310 и проект в AVRStudio (в нем еще ЖКИ и энкодер) Я новичок и еще не особо разбираюсь во всех премудростях, может кто-то что-то порекомендует, укажет на ошибки. Заранее благодарен ) TDA7310.pdf MK-TDA7310.rar
  9. Vit@lik

    Tsop + Atmega32

    в чем проблема? код на баскоме должен считывать команды с пульта и отображать. он считывает но с10- 20 нажатий только раз срабатывает приемник tsop32336 $regfile = "m32def.dat" $crystal = 8000000 $lib "mcsbyte.lbx" ' Êîíôèãóðàöèÿ ÆÊÄ Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portd.0 , Rs = Portd.1 Config Lcd = 16 * 2 ' RC5 'Config Pind.2 = Input Config Rc5 = Pind.2 'Âêëþ÷àåì ïðåðûâàíèÿ Enable Interrupts ' Ïåðåìåííûå Dim Address As Byte , Command As Byte Initlcd Cursor Off Cls ' Î÷èñòêà ýêðàíà ÆÊÈ Locate 2 , 1 Lcd "Waiting for RC5" Do Getrc5(address , Command) If Address = 0 Then Cls Command = Command And &B01111111 Locate 1 , 1 Lcd Address ; " " ; Command End If Locate 2 , 1 Lcd Address ; " " ; Command Loop End
  10. Menseu

    Wav На Atmega32

    Всем доброго времени суток. Нуждаюсь в помощи. Делаю дипломный проект, с изготовлением устройства. Решил делать на AVR, в этом деле я\ новичек, так что заранее прошу прощение за глупые вопросы. Само устройство представляет из себя часы c боем. С реализацией функции часов у меня проблем не возникло, благо в сети все разжевано. А вот с боем возникли проблемы, прочитав у Белова про воспроизведение по нотам - тут все понятно и просто, но так не получится реализовать именно бой (удар по колоколу), да и нот я не знаю. Погуглив немного, узнал что можно воспроизводить wav, тоже ничего сложного, убираем заголовочный файл в hex wav'ки и остальное выводим с частотой дискретизации файла на динамик. Поскольку wav довольно увесисты, в интернете везде используется внешняя память, либо епромки, либо сд\ммс карты. В моем случае, она весит около 12 кб, программа около 3 кб, т.е остается еще достаточно места. Собственно сам вопрос, можно ли как-то впихнуть wav в программную память и оттуда вопроизводить, не используя внешнуюю память если да - как это реализовать? Делаю проект в CodeVisionAVR
  11. Доброго времени суток. Обращаюсь к знающим дабы не наделать ошибок. Есть в наличии USBASP - http://img06.allegro...7/58/4085275829 А также AtMega32L. Вопрос 1 Подскажите пожалуйста как правильно подключить их вместе. Нашел несколько схем: http://kiloom.com/us...henie_k_mk.html http://www.mikrocont...oard_20_lrg.png Подскажите правильное подключение. Вопрос 2 Можно ли прошивать без стороннего источника питания, используя VCC программатора? Прошиваться будет только AtMega, не в сборе с устройством. Или же нужно организовать отдельное питание? Если нужно то подойдет ли - http://we.easyelectr...b-v2-mb102.html ? Вопрос 3 На сколько критично прошивать без кварца? Обязуюсь следить за битом частотного генератора. Спасибо.
  12. Хочу сделать бортовой комп на ATMega32 и дисплеем HD44780 (4x20), чтобы показывал скорость (и пробег), напряжение аккумулятора, тахометр, передачу, остаток топлива, температуру двигателя, время может еще что-то добавлю. Помогите составить схему, а точнее выбрать порты МК. я умею писать самые простенькие программы мигать светодиодом, выводить текст на экран, и с АЦП чуть-чуть. Но буду учиться. Какие порты и для чего выделить? Какие под клавиатуру (s1, s2, s3 ,s4 s5), под дисплей, и все остальное. Чтобы потом не возникло проблем. Нужно подключать кнопки к INT1 INT0? Чтобы потом не возникало проблем что процессор что-то не может сделать из-за плохой схемы..
  13. Я себе купил процессор ATmega32 и дисплей RC1602E-YKY-CSX. Кроме етого купил TDA7313. Хочу написать прошивку сделать что-то типа цифрового темберблока. Чтобы на экранчике всьо отображалось. А когда ничего не делать, чтобы под музыку как в анализаторе столбики прыгали. Чтобы измерял температуру радиатора (через DS18B20) и управлял кулером. Ну и еще многое другое. Сам я знаю немного Асемблер (команды MSC-51). И умею немного писать программы на С+ + для Виндовс. Есть програматор USBASP. Прошывал ATtiny2313 и ATtiny26L. Правда у меня никак не получалось устанавливать фьюзы. Поэтому делал проекты в которых должны быть заводские фьюзы. (Из за неправильных фьюзов две Атмеги8 испортил). Писать прошивку решил на Си. (то же не на ассемблере) Подскажите где можно посмотреть список команд Атмега32 на Си. Где можно узнать про то как использовать АЦП и регистры и все остальное что там есть в Атмега32. И вообще с чего начать, чтобы сделать то что я хочу. Хотел бы получить хорошие ответы с ссылками и примерами.
  14. Пытаюсь вывести изображение на телевизор.. вроде что-то проясняется на основе этого http://vg.ucoz.ru/pu...impulsy/5-1-0-9 разобрался как двигать белый косячный прямоугольник .... хотелось бы функцию , чтобы по х у двигало. но delay_us требует только константу.. там чел в 3 статье что-то говорит про таймер... и пишит на ассемблере.. я далек от него) только C (cvavr) может кто подскажет что-нибудь.. И вот еще тут размышляет чел.. http://vg.ucoz.ru/forum/8-13-1 именно это мне не понятно как это по SPI ? и что значит по совпадению..) #include <mega32.h> #include <delay.h> #define ZERO PORTC=0 // 0 уровень синхроимпульса #define BLACK PORTC=1 // 0.3 уровень черного #define WHITE PORTC=2 // 0.7-1.0 уровень изображения #define vcol 286 // количество видимых строк изображения #define shortsyncZ 3 // длительность короткого синхроимпульса #define shortsyncB 29 // длительность паузы короткого синхроимпульса #define longsyncZ 27 // длительность длинного синхроимпульса #define longsyncB 5 // длительность паузы длинного синхроимпульса unsigned int i; // подпрограмма генерирующая 5 коротких синхроимпульсов (импульсы последовательности l,m) // параметр last_p - длительность последней паузы в пачке // если last_p=0 - последняя пауза стандартные 27 // если last_p!=0 - последняя пауза 61 void shortsi(unsigned int last_p) { ZERO; delay_us(shortsyncZ); BLACK; delay_us(shortsyncB); ZERO; delay_us(shortsyncZ); BLACK; delay_us(shortsyncB); ZERO; delay_us(shortsyncZ); BLACK; delay_us(shortsyncB); ZERO; delay_us(shortsyncZ); BLACK; delay_us(shortsyncB); ZERO; delay_us(shortsyncZ); BLACK; if (last_p==0) delay_us(shortsyncB); else delay_us(61); } // подпрограмма генерирующая 5 длинных синхроимпульсов (импульсы последовательности n) void longsi(void) { ZERO; delay_us(longsyncZ); BLACK; delay_us(longsyncB); ZERO; delay_us(longsyncZ); BLACK; delay_us(longsyncB); ZERO; delay_us(longsyncZ); BLACK; delay_us(longsyncB); ZERO; delay_us(longsyncZ); BLACK; delay_us(longsyncB); ZERO; delay_us(longsyncZ); BLACK; delay_us(longsyncB); } void main(void) { DDRC = 1<<DDC0|1<<DDC1; // настроим порты вывода while(1) { longsi(); for(i=0;i<100;i++) { // пустые строки ZERO; delay_us(4); BLACK; delay_us(59); } for(i=100;i<250;i++) { ZERO; delay_us(4); BLACK; delay_us(18); WHITE; delay_us(6); BLACK; delay_us(35); } for(i=250;i<vcol+1;i++) { // пустые строки до 311 ZERO; delay_us(4); BLACK; delay_us(59); } }
  15. realm

    Ft245 + Atmega32

    Поделитесь рабочими исходниками на асме для связки FT245 c Atmega32 (или хоть какой-то).
  16. Разрабатывается устройство в котором планируется использовать два Atmega32 с разними прошивками но с одной целью!=). Переключения планируэтса осуществлять с помощю отдельново МК которий будет играть роль меню в последуэщемся будет запускаться меню в котором вибираем прошивку и запускаэтса определенный Atmega32...
  17. нашел программу которая считывает серийный номер карточки Em-marine и выдает его в терминал. в протеусе все работает нормально а в реальности ноль..... вот такой у меня считыватель.http://www.ironlogic.by/il.NSF/pages/matrixII. думал сперва считыватель вышел из строя,взял новый такая же беда Вот программа для codevision #include <mega32.h> #include <delay.h> // 1 Wire Bus functions #asm .equ __w1_port=0x12 ;PORTD .equ __w1_bit=7 #endasm #include <1wire.h> // Standard Input/Output functions #include <stdio.h> #define DS1990_FAMILY_CODE 1 #define SEARCH_ROM 0xF0 // Declare your global variables here #define MAX_DEVICES 8 unsigned char rom_code[MAX_DEVICES][9]; // Declare your global variables here void main(void) { unsigned char i,j,devices; PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; ACSR=0x80; SFIOR=0x00; w1_init(); while (1) { delay_ms(500); w1_init(); devices=w1_search(SEARCH_ROM,&rom_code[0][0]); for (i=0;i<devices;i++) if (rom_code[i][0]==DS1990_FAMILY_CODE) { for (j=1;j<=6;j++) printf(" %02X",rom_code[i][j]); printf("\n\r"); }; }; } посмотрел что творится на линии осциллографом форма импульсов какая то неправильная с чем может быть связана?
  18. Собрал осциллограф на AVR как описано в этой статье. http://cxem.net/izmer/izmer82.php Не запустился, просто горит белый экран, все подстраивал как мог, всеравно- белый экран. Если вытащить atmega32, результат тот же. Перепрошивал всеми возможными программами, везде писало что все прошло успешно. В чем может быть проблема? http://s57.radikal.r...57a4e906a66.jpg
×
×
  • Create New...