3d_killer Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 Не могу попробовать передачу и прием данных в Atmel Studio, МК atmega 128. пишу такой код (везде в интернете работа только с одним портом, поэтому единички подставлял я в регистрах) UBRR1H=0; UBRR1L=25; UCSR1B |=(1<<RXCIE1)|(1<<RXEN)|(1<<TXEN)|(UDRIE1); UCSR1C |=(1<<URSEL)|(1<<UPM1)|(1<<UCSZ1)|(1<<UCSZ0); начиная со второй строки код не зашивается, при верификации ошибка, на URSEL студия ругается что такого регистра нет. Есть у кого пример кода когда более 1 порта как его инициализировать, принять и передать данные? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ARV Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 Ну так UMSEL же... 0 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 такой регистр есть, я его пробовал, все равно программа не пишется в контроллер, примеров случайно нету? http://narodstream.ru/avr-urok-14-usart-svyaz-mk-s-pk-chast-3/ http://www.customelectronics.ru/avr-rabota-s-uart/ вот примеры статей, видео, везде этот регистр, все что тут показывается не работает... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
ARV Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 Какой регистр?! UMSEL не регистр, а название бита в регистре UCSR1C! Вы бы даташит читали бы все-таки, а то у вас явные проблемы с пониманием того, что происходит в коде. Кстати, "не пишется" и "не компилируется" - это разные вещи. В контроллер пишется всё, что угодно, даже стихи Пушкина можно прошить. А вот программа с ошибками не скомпилируется и потом, естественно, не запишется. Разницы в настройках разных модулей USART нет никакой - 0 на 1 меняется в названиях регистров и всё. А если не работает - это в коде надо разбираться. 1 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 да я открывал, да только понять его тяжеловато, вот и прошу пример. Я вижу что это название бита, но везде в примерах совсем другой, и все равно оно не работает 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 (изменено) 9 минут назад, 3d_killer сказал: прошу пример А может просто в даташит сходить?.. ну и на прошивку код никак не должен влиять, даже кривой и нерабочий. Если скомпилился - должен зашиться. Изменено 6 октября, 2017 пользователем BARS_ 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ARV Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 Смотрите: по умолчанию во всех AVR c USART есть регистры UCSRA, UCSRB и т.д. В МК, где USARTов больше одного, эти регистры нумеруются, т.е. превращаются в UCSR0A и UCSR1A и т.д. В каждом регистре есть биты RXC, UDRE и т.п., которые так же получают номера, если модулей USART несколько. При этом, так как биты ОДИНАКОВО располагаются в регистрах разных модулей, можно продолжать пользоваться НЕНУМЕРОВАННЫМИ наименованиями битов - ошибки не будет. Но регистры, само собой, надо нумеровать правильно. Поэтому если у вас есть пример для USART без номера - просто ДОПИШИТЕ к названию регистров нужный номер, не трогая всё остальное. Или перенумеруйте ВСЕ в соответствии с тем, что я написал. Никакой другой разницы нет. 0 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 проблема в том что даже эти 2 строчки после компиляции не пишутся в контроллер, убираю вторую строку тогда записывается 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 Только что, 3d_killer сказал: даже эти 2 строчки после компиляции не пишутся в контроллер Значит пишите криво. Код никак не влияет на запись в МК. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ARV Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 (изменено) Потому что во второй строчке у вас указан UMRSEL1, которого в природе не существует. Читайте выше - я описал алгоритм того, как надо делать. Изменено 6 октября, 2017 пользователем ARV 0 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 это как?? по поводу UMRSEL1 я же закоментировал эти строки 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 8 минут назад, 3d_killer сказал: как? Так, что в даташит надо смотреть прежде чем что-то писать. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 думаете не открывал? нужной информации я не нашел, вы если не хотите или не можете помочь, то зачем пишите? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 (изменено) 4 минуты назад, 3d_killer сказал: нужной информации я не нашел Как так, если там подробно расписано, как запустить UART? Мало того, там дан кусок кода на Си, который этим занимается. Только надо открывать англоязычный даташит, а не криво переведенный русский. http://eu.mouser.com/ds/2/36/Atmel-8151-8-bit-AVR-ATmega128A_Datasheet-464632.pdf Изменено 6 октября, 2017 пользователем BARS_ 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 переписал из англоязычного изменив порт 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 В компиляторе есть предупреждения при сборке? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 в методе USART_Init 1,2 и 4 строки вызывают ошибку при записи нет в компиляторе пусто если использовать 0 порт то тоже ошибка 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 Раз компилятор пропускает, значит все нормально с кодом. Попробуй через AVR-Burn-O-Matt прошить 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 он шьет через winavr, установил и прикрутил к atmel studio, прошил без ошибок, щас попробую передачу, то есть код написан верно? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 Когда есть ошибки в коде, компилятор ругается. Конечно, могут быть ошибки в самой настройке регистров, но это уже другое дело, тогда просто будет не так работать, как надо. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 (изменено) #define FOSC 16000000 #define BAUD 57600 #define MYUBRR FOSC/16/BAUD-1 void USART_Init(unsigned int ubrr) { /*Set baud rate */ UBRR1H = (unsigned char)(ubrr>>8); UBRR1L = (unsigned char)ubrr; UCSR1B = (1<<RXEN1)|(1<<TXEN1); /* Set frame format: 8data, 2stop bit */ UCSR1C = (1<<USBS1)|(3<<UCSZ01); } void USART_Transmit( unsigned char data ) { /* Wait for empty transmit buffer */ while ( !( UCSR1A & (1<<UDRIE1)) ) ; /* Put data into buffer, sends the data */ UDR1 = data; } int main(void) { USART_Init(MYUBRR); while (1) { USART_Transmit('3'); //Инвертирование порта //PORTC^= (1>>0); _delay_ms(1500); //USART_Transmit('2'); //Сброс сторожевого таймера wdt_reset(); } } все равно тишина на порту Изменено 6 октября, 2017 пользователем 3d_killer 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 А порты кто настраивать будет?.. Ну и функция инита нигде в коде не вызывается. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 она есть я поменял тут код, а порты настраивать это какие? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 6 октября, 2017 Поделиться Опубликовано 6 октября, 2017 Ту ножку, на которой Tx находится, настроить на выход 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
3d_killer Опубликовано 6 октября, 2017 Автор Поделиться Опубликовано 6 октября, 2017 DDRD |= 1>>3; все равно тишина 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.