Jump to content

vladimircape

Members
  • Content Count

    27
  • Joined

  • Last visited

Community Reputation

-2 Плохой

About vladimircape

  • Rank
    Новенький

Информация

  • Город
    Минск

Электроника

  • Стаж в электронике
    Менее года
  1. Может как-то влияет, то, что я делаю это через встроенный в arduino переходник, с заглушенным микроконтроллером на ардуино
  2. Оказывает нужно было устанавливать 2 стоп бита. А в чём разница 1 или 2 стоп бита?
  3. Подскажите в чём причина. Если одиночный символ передавать ,то всё работает корректно,если послать строку или число, то неправильно вот код void str_uart_send(char *string) { while(*string != '\0') { uart_send(*string); string++; } } void send_int_Uart(unsigned int c)//Отправка числа от 0000 до 9999 по UART { unsigned char temp; c=c%10000; temp=c/100; send_Uart(temp/10+'0'); send_Uart(temp%10+'0'); temp=c%100; send_Uart(temp/10+'0'); send_Uart(temp%10+'0'); }
  4. Помогите, оценить своих опытным взглядом avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -DF_CPU=7372800 -Wa,-adhlns=%1.lst -std=gnu99 %1.c -o %1.o avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -DF_CPU=7372800 -Wa,-adhlns=%1.o -std=gnu99 %1.o --output %1.elf -Wl,-Map=%1.map,--cref -lm avr-objcopy -O ihex -R .eeprom %1.elf %1.hex avrdude -p m8 -P COM3 -c usbasp -b 19200 -U flash:w:%1.hex сейчас так проходит процесс компиляции и заливки нужно ли -DF_CPU=7372800 чтобы выставлять частоту,или достаточно в самом коде и в arvdude правильно ли фюзы, чтобы включить внутренний кварц на 8мгц(Atmega8A) кажется делал по программе. -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m общая строка так должна быть? avrdude -p m8 -P COM3 -c usbasp -b 19200 -U flash:w:file.hex -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m
  5. Сделал немного переписав, но появилась не состыковка здесь я выставляю скорость 9600, а терминал ловит только на 1200. В чём может быть причина #include <avr/io.h> #include <avr/interrupt.h> unsigned char value; unsigned char NUM = 0; unsigned char count = 0; unsigned char byte_receive = 0; unsigned char i = 1; // Функция задержки в мкс void _delay_us(unsigned char time_us) { register unsigned char i; for(i = 0; i < time_us; i++) { asm volatile(" PUSH R0 "); asm volatile(" POP R0 "); } } // Функция задержки в мс void _delay_ms(unsigned int time_ms) { register unsigned int i; for(i = 0; i < time_ms; i++) { _delay_us(250); _delay_us(250); _delay_us(250); _delay_us(250); } } // Функция передачи данных по USART void uart_send(char data) { while(!( UCSRA & (1 << UDRE))); // Ожидаем когда очистится буфер передачи UDR = data; // Помещаем данные в буфер, начинаем передачу } // Функция передачи строки по USART void str_uart_send(char *string) { while(*string != '\0') { uart_send(*string); string++; } } int uart_receive(void) { while(!(UCSRA & (1 << RXC))); // Ожидаем, когда данные будут получены return UDR; // Читаем данные из буфера и возвращаем их при выходе из подпрограммы } void uart_init(void) { UBRRH=0; UBRRL=0x33; UCSRA = 0; UCSRB = (1<<RXEN)|(1<<TXEN); UCSRC = ( 1 << URSEL ) | ( 1 << UCSZ1 ) | ( 1 << UCSZ0 ); } int main(void) { uart_init(); // Инициализация USART str_uart_send("Initialization system\r"); // Передаем строку по USART value='D'; while(1) { uart_send(value); _delay_ms(100); uart_send('h'); _delay_ms(100); } }
  6. Решил я связать свою atmel8 с компом ,а покупать всякие приспособления не захотел ибо есть arduino почему бы ее не использовать. Взял у своей Atmega8 TX ножку соеденил с RX Arduino UNO Закачал программа на Arduino которая шла в примерах ,слегка изменив. #include <SoftwareSerial.h> SoftwareSerial mySerial(0, 1); // RX, TX void setup() { Serial.begin(14400); Serial.println("Goodnight moon!"); mySerial.begin(9600); } void loop() // run over and over { if (mySerial.available()) { Serial.println(mySerial.read()); } } Связь с компьютером на 14400 бот, работает , а вот как пытаюсь словить с моего atmel8 приходит какой-то бред т.е. оправляю '1' как символ приходит 128 0 0 Вот сама программа что в atmel8 #define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> //Прототипы подпрограмм void USART_Transmit( unsigned char data ); void USART_Init( unsigned int ubrr); void USART_Init( unsigned int ubrr)//Инициализация модуля USART { /* Задаем скорость работы USART 9600 */ UBRRH=0; UBRRL=51; /* Разрешаем прием и передачу по USART */ /* Устанавливаем формат данных 8 бит данных, 2 стоп бита */ UCSRA=0b00000000; UCSRB=0b00011000; UCSRC=0b10000110; } void USART_Transmit( unsigned char data ) //Функция отправки данных { while ( !(UCSRA & (1<<UDRE)) ); //Ожидание опустошения буфера приема UDR = data; //Начало передачи данных } void send_uart_str(unsigned char *s) { while(*s!=0) USART_Transmit(*s++); } int main(void) { USART_Init (); while(1) { USART_Transmit('1'); } } P/S подключаю только TX-RX а RX-TX нет ибо всё равно мне не нужно что-то отправлять в мк.
  7. Да, буду изучать UART, может подскажите хорошую статью с примером
  8. Ну это не вариант ,если делаешь отладку.
  9. Есть ИК датчик дальномер,есть мега8 с портами АЦП как мне посмотреть получаемые параметры, например в ардуино я мог мониторить порт , а здесь как-то можно, или вариант через AVR Studio.
  10. В одной книжке пишут Транзистор полевой n-канальный IR530 или IR540(MOSFET) с каналом типа n Это имеется ввиду IRF или это разное?
  11. вот такой конденсатор http://radio.lg.ua/products_pictures/large_6722599-01.jpg Я так понимаю где черный полукруг,это плюс у него? и по схеме http://vrtp.ru/index.php?act=Attach&type=post&id=422914 100,0 плюс идет в разьем с жёлтым кружочком, а минус уходит на обратную сторону где масса?
  12. Спасибо, за советы, с трудом перепаял теперь нормально, не очень ровно с одной стороны дорожки встали были
  13. Ну, катушка еще не установлена, и на катушки идут ноги 4 и 5 сверху если по схеме, или (12 и 13 если по документации), а я говорю про 11 и 12
  14. Запаял эту микруху по схеме http://vrtp.ru/index.php?act=Attach&type=post&id=422914 , и так как размеры малы не уверен точно, нет ли спаек, начал в режиме сопротивления прозванивать ножки вот док по микрухе http://www.rfm.com/products/data/txc101.pdf понятно что 11 с 15 и 16 соеденены и должны прозваниваться ,но почему-то и 11 и 12 ая прозваниваются ,может так надо или дорожки всё таки спаялись?
×
×
  • Create New...