робот на базе компонентов от pololu.
Точнее на avr atmega328p.
Прикрутил два сдвиговых регистра, которые управляют матрицей светодиодной. Заработало.
Далее мне нужно реализовать usart.
Написал программу. Пока еще в робота не залил.
Но решил протестировать прошивку в proteusе.
Сделал схему.
Запустил, матрица типа заработала (вру светодиоды неправельно горят, ну и ладно, главное они светятся).
А вот по терминалу, какаято херь идет. Одни нули.
Сдается мне, я неправельно сконфигурировал проект симуляции?
Или неправельно инцеализировал USART.
Может у когонибудь есть время поковырять мой код?
Весь проект прикрепил к посту.
Там есть файлы и папки:
/Симуляция/1.dsn - проект протеуса
/TrackPixel/TrackPixel.atsln - проект на atmel studio 6
/TrackPixel/Debug/TrackPixel.hex - прошивка
В краце опишу как инициализирую usart
где F_CPU = 20000000
- Код: Выделить всё • Развернуть
/* настройка скорости
*/
int baud = 9600;
unsigned int baud_ubrr = (F_CPU - 8 * baud) / (16 * baud);
UBRR0 = baud_ubrr;
/* разрешаем прерывания при риеме и передачи данных
*/
UCSR0B = (1<<RXCIE0)|(1<<TXCIE0)|(1<<RXEN0)|(1<<TXEN0);
UCSR0C = (1<<UCSZ01)|(1<<UCSZ00); //размер слова 8 разрядов
UCSR0A = (1<<RXC0)|(1<<UDRE0);
// Enable interrupts in general.
sei();
Добавлено спустя 2 часа 26 минут 51 секунду:
Запустил на эмуляторе, что идет в комплекте со студией. Там прекрасно обрабатывается вызываются прерывания на то что данные доставлены.
Интересно, в протеусе можно поднять листинг программы? там брекпоинты хочется поставить итд.