Страница 1 из 1

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

Добавлено: Вс май 11, 2014 20:00:24
Николай Первый
Доброго времени суток. Столкнулся с проблемой неизвестного мне свойства: пытаюсь настроить модуль 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
В чём может быть проблема?

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

Добавлено: Ср май 21, 2014 08:41:59
Николай Первый
Уже выяснил экспериментально, он просто в симуляторе не отображается, а фактически срабатывание происходит.

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

Добавлено: Ср май 21, 2014 09:40:49
ИС-пытатель
Проблема как всегда в симуляторе.. :)))