Atmega16. Не могу изменить состояние регистра UCSRC

Обсуждаем контроллеры компании Atmel.
Ответить
Сообщения: 2
Зарегистрирован: Вс май 11, 2014 19:38:12

Сообщение Николай Первый »

Доброго времени суток. Столкнулся с проблемой неизвестного мне свойства: пытаюсь настроить модуль USART, при этом не получается изменить содержимое регистра UCSRC. Выполняю следующий код:
Спойлер

Код: Выделить всё

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
int main(void)
{
	DDRA=0xff; //включаю порт А на вывод
	PORTA=0xfe; // просто на бум зажигаю светодиоды
	//** speed boad 9600 (f_clk == 4 MHz)
	UBRRL= 25;
		
	//**
	
	UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //8-битовое слово, контроля чётности нет, 1 стоп-бит, асинхронный режим
	UCSRB=(1<<RXCIE)|(1<<RXEN); // разрешаю работу приёмника
	
    while(1)
    {
        //TODO:: Please write your application code 
    }
}

SIGNAL (SIG_USART_RECV)
 {
		 PORTA = UDR;
		 
 }

В симуляторе при пошаговом выполнении программы наблюдаю, что строчка

Код: Выделить всё

UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
никаких изменений в состоянии регистра не вызывает. Я использую Atmel Studio 6.0
В чём может быть проблема?
Реклама
Сообщения: 2
Зарегистрирован: Вс май 11, 2014 19:38:12

Сообщение Николай Первый »

Уже выяснил экспериментально, он просто в симуляторе не отображается, а фактически срабатывание происходит.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Проблема как всегда в симуляторе.. :)))
Ответить

Вернуться в «AVR»