USART Mega16 косяк с флагом UDRE

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

хочу поделиться, чтобы никто не мучался, если что...
было:

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

void TransferBufferUSART(unsigned char *massive, unsigned char size) {
	
	for (unsigned char i = 0; i < size; i++) {
		while (!(UCSRA && (1 << UDRE)));
		UDR = *(massive + i);
	}
}
у меня был такой код, когда посылал первую команду от компьютера к uC, то в ответ по идее должно было отправляться 4ре байта в компутер. Программировал uC и да действительно присылалось 4ре байта, но в ответ на вторую и след комманду присылалось 2а байта. Сломал часть своего мозга. JTAG'а дома нету... посмотреть что происходит тоже не мог... дописал одну строчку в конец цикла через 4ре часа мучений

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

UCSRA &=~(1 << UDRE);
и о чудо случилось всё заработало.
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Реклама
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

VMLAB помогает хорошо и PROTEUS тоже.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

господи, как же я не догадался???... что есть протеус и вмлаб... вот почему ты мне, господи, это раньше не сказал...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

tych писал(а):VMLAB помогает хорошо и PROTEUS тоже.
Mozart писал(а):вот почему ты мне, господи, это раньше не сказал...
Итак, пора в разделе "Новые звания" поздравлять tych-а с присвоением звания бога... :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

только я чуть-чуть атеист... и больше ему не поверю :) ;)
ибо должен быть разум...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

косяк с моей головой...

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

while (!(UCSRA && (1 << UDRE)));
вот так не пишите... пишите вот так

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

while (!(UCSRA & (1 << UDRE)));
вот так всё работает и хорошо работает...

з.ы. до НИИ доеду... пришлю фотки работы...
з.з.ы. приятно когда что-то работает правильно......
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

дык это, && и & - весьма разные вещи в данном случае.
Наверное, можно даже сказать, что & в данном контексте арифметичекая операция, а && - логическая.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

дык, я знаю, что разные...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»