Jump to content

sibiriak

Members
  • Content Count

    22
  • Joined

  • Last visited

Community Reputation

0 Обычный

About sibiriak

  • Rank
    Новенький

Информация

  • Город
    Бердск

Электроника

  • Стаж в электронике
    3-5 лет
  • Сфера радиоэлектроники
    Новосибирская область
  1. в этом то и проблема выводится только одна и таже буква чтобы я не делал
  2. Делаю следующее подключаю lcd wh1602b winstar к atmega16 Заливаю простенькую программу в мегу #include <mega16.h> #include <delay.h> // инициализация порта В под ЖКИ #asm .equ __lcd_port=0x15 ;PORTC #endasm #include <lcd.h> void main(void) { PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; TCCR0=0x00; TCNT0=0x00; OCR0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; MCUCSR=0x00; TIMSK=0x00; UCSRB=0x00; ACSR=0x80; SFIOR=0x00; ADCSRA=0x00; SPCR=0x00; TWCR=0x00; lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("Hello"); lcd_gotoxy(0,1); lcd_putsf("radioaktiv.ru"); while (1) { } } И о чюдо на второй строчке рисуется буква О это все чего я смог добится подскажите новичку что делать
  3. походу работает. Я детально вчиталсяв стандартные ф-и они делают тоже самое почти. Спасибо огромное тем кто откликнулся. В железе всеравно потери идут и ничего не работает а в протесе вроде работает всем спасибо за мысли будем дальше работать С вами не прощаюсь спишемся
  4. короче нужен протокол передачи нанных. Это решает часть проблем. переписать функцию получения данных например так: if (rx_counter>0) { x=getchar(); if (x=='1') { migalka(5); } putchar(x); x=0x00; } это не подвесит прогу и я уже проверил в протеусе через раз работает)))) какиенибуть примеры к советам будут где чего почитать и так далее
  5. с зависанием камня разобрался функция передачи была испорчена мной))))
  6. выяснилось что микроконтроллер после принятия символа перезагружается что делать? умная дача 2.rar
  7. я переписал на стандартные функции четчар путчар вроде лучше но потери идут где не пойму
  8. проблема толи в настройках толи в проводах в протеусе виртуально все работает
  9. Доброго времени суток. Начнем! Есть ПК , есть atmega16 , есть переходник USB UART из аппаратуры это все. Написана программа дла работы с ком портом , которая отлично работает. ДАННЫЕ------->ПК------->переходник------->atmega16 в идеале загорается светодиод если данные пришли без потерь Но в том то и дело что данные приходят иногда не приходят иногда приходят с пятого, седьмого, пятнадцатого раза настройки соединения USART в atmega16 // 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=0xD8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; Настройки в программе такиеже 8 дата 1 стоп NO PARity режим асинхронный есть предположение что нужно соединить общий провод на переходнике и atmega16 код приема данных // USART Receiver interrupt service routine interrupt [uSART_RXC] void usart_rx_isr(void) { char status,data; status=UCSRA; data=UDR; nomer_bita++; x[nomer_bita]=data; if(nomer_bita==5) { nomer_bita=0; } if((x[1]=='1') && (x[2]=='2') && (x[3]=='3') && (x[4]=='4') && (x[5]=='5')) { PORTA.7=1; } else { PORTA.7=0; } if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) { rx_buffer[rx_wr_index++]=data; #if RX_BUFFER_SIZE == 256 // special case for receiver buffer size=256 if (++rx_counter == 0) { #else if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; #endif rx_buffer_overflow=1; } } } внимание вопрос как избежать данного бага потери данных?
  10. всем спасибо за информацию. Если что напряжения совпадают
  11. привет всем! задача такая . Есть ПК , есть переходник usb uart, есть микроконтроллер их надо соеденить . Драйвера определяются все нормально но я незнаю как соеденить контакт RxD, Txd микронтроллера с переходником rxd tXD МК Rxd---->Rxd переходник ?????? или МК Txd---->Rxd переходник ?????? для передачи данных на ПК и обратно
  12. Кстати проект неплохо продвигается решены многие проблемы. Вчера подключил датчики движения заработало наура. Жду запчасти, а точнее блок питания
  13. ПОЗДНО ПЕРВЫМ БЫЛ Rhime ПИШИ СВОЙНОМЕР ТЕЛЕФОНА В ЛИЧКУ СКИНУ ЗАВТРА ДЕНЕЖКУ
  14. тАМ ЧЕТЫРЕ ДАТЧИКА ДВИЖЕНИЯ ОНИ ВЫДАЮТ 1 КОГДА ДВИЖЕНИЕ ЕСТЬ . 2) Я ПОПРОБУЮ ПОДТЯНУТЬ НА ЗЕМЛЮ ПОСМОТРИМ ЧТО ЭТО ДАСТ
  15. Здрасте всем кто не на работе. Сразу скажу кто справится с задачей тому 200 р на телефон сегодня или завтра закину ЗАДАЧА: объяснить мне тупому почему у меня на порт приходят данные(некоторые ноги порта установлены в1). Этого неможет быть так как датчики на схеме не подключены, а значит и функция не может выполнятся а она выполняется но не вся а частично( некоторые if условия выполняются анекоторые нет). В протеусе все симулируется отлично а вжелезе функция срабатывает.ВОТ К проекту прикреплен файл 1)прошивка 2)Codvisionavr программа 3)Протеус файлы И так PORTA косячит и меня это парит. Это последний косяк все уже почти в железе реализовано а тут это. Все ноги порта A должны быть установлены в 0 кромеодного PORTA.6=1 и 7 -й я использую как мигалку все более ничего при первом запуске быть недолжно .Когда человек входит в комнату (охрана выключена) тогда зажигается свет тоесть на порте А ноги устанавливаются в 1 . Это происходит только в одном месте в программе и только с датчиков это должно работать(ну тоесть подать 1 на входы порта . я думаю кто понимает беструда надут название функции в программе где все это происходит Фьюзы (установленные галочкой) SPIEN BOOTSZ1 BOOTSZ0 CKORT JTAGEN EESAVE ЖДУ ОТ ВАС УМНЫХ МЫСЛЕЙ умная дача.rar
×
×
  • Create New...