Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 23.10.2021, 13:13  
sanya_chi
Прохожий
 
Регистрация: 23.10.2021
Сообщений: 2
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sanya_chi на пути к лучшему
По умолчанию сброс бита txc0

Уважаемые форумчане. Подскажите как правильно сбросить бит TXC0 (окончание передачи байта) на asm-е?. Контроллер ATMega328.
Реклама:
sanya_chi вне форума  
Непрочитано 23.10.2021, 14:46  
alex_t2
Прописка
 
Регистрация: 16.09.2010
Сообщений: 157
Сказал спасибо: 22
Сказали Спасибо 125 раз(а) в 64 сообщении(ях)
alex_t2 на пути к лучшему
По умолчанию Re: сброс бита txc0

Глянул у себя в коде - вот такой кусок нашел:
ldi TMP,(1‹‹RXEN0)|(1‹‹TXEN0)|(1‹‹RXCIE0)|(1‹‹TXCIE0)| (0‹‹UDRIE0); Запрет прерывания
sts UCSR0B, TMP ; По пустому UDR

Вроде ж оно?
Делал давно, проект вовсю работает.
Этот кусок стоит в прерывании передачи байта, при достижении конца буфера.

Последний раз редактировалось alex_t2; 23.10.2021 в 14:49.
alex_t2 вне форума  
Сказали "Спасибо" alex_t2
sanya_chi (23.10.2021)
Непрочитано 23.10.2021, 17:22  
sanya_chi
Прохожий
 
Регистрация: 23.10.2021
Сообщений: 2
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sanya_chi на пути к лучшему
По умолчанию Re: сброс бита txc0

Спасибо, правда бит TXC0 в регистре UCSR0A но доступ я думаю аналогично делается. Обычно пишу для 8051 и ARM. Для AVR на Cи и редко. Всегда использовал прерывание по флагу TXC0, там он аппаратно сбрасывается, а без прер. приходится программно. Уж и asm AVR подзабыл.....
sanya_chi вне форума  
Непрочитано 23.10.2021, 18:05  
alex_t2
Прописка
 
Регистрация: 16.09.2010
Сообщений: 157
Сказал спасибо: 22
Сказали Спасибо 125 раз(а) в 64 сообщении(ях)
alex_t2 на пути к лучшему
По умолчанию Re: сброс бита txc0

А, да, тупанул.
У меня это обслуживает обмен пакетами по 485-му интерфейсу, сделано на прерываниях, естественно, поэтому задача не сбросить флаг (он сам) а запретить прерывание при окончании передачи.
По идее, должно быть аналогично, но, возможно, нужно сначала прочитать регистр, воткнуть единицу в бит, и записать обратно.
Вообще на эту тему неплохо расписано на изиэлектрониксе.
alex_t2 вне форума  
Непрочитано 25.10.2021, 15:47  
sanya
Временная регистрация
 
Регистрация: 10.11.2016
Сообщений: 57
Сказал спасибо: 6
Сказали Спасибо 18 раз(а) в 15 сообщении(ях)
sanya на пути к лучшему
По умолчанию Re: сброс бита txc0

Как-то так...

.macro inp
.if @1 ‹ 0x40
in @0, @1
.else
lds @0, @1
.endif
.endm

.macro outp
.if @0 ‹ 0x40
out @0, @1
.else
sts @0, @1
.endif
.endm

inp REG, UCSR0A
sbr REG, (1‹‹TXC0)
outp UCSR0A, REG
sanya вне форума  
Эти 2 пользователя(ей) сказали Спасибо sanya за это сообщение:
alex_t2 (26.10.2021), sanya_chi (26.10.2021)
Непрочитано 25.10.2021, 23:46  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 943
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: сброс бита txc0

Сообщение от sanya_chi Посмотреть сообщение
Для AVR на Cи и редко. Всегда использовал прерывание по флагу TXC0, там он аппаратно сбрасывается, а без прер. приходится программно. Уж и asm AVR подзабыл.
И чем не устраивает строка на С

UCSR0A |= (1‹‹TXC0);

коль "на С и редко"? На хуа тут асм?
Someone вне форума  
Непрочитано 26.10.2021, 00:09  
alex_t2
Прописка
 
Регистрация: 16.09.2010
Сообщений: 157
Сказал спасибо: 22
Сказали Спасибо 125 раз(а) в 64 сообщении(ях)
alex_t2 на пути к лучшему
По умолчанию Re: сброс бита txc0

Так может в рабочий асм-проект что-то впиливается. Не переписывать же.

В любом случае sanya дал, что называется полный исчерпывающий ответ.
alex_t2 вне форума  
Непрочитано 26.10.2021, 03:02  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 943
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: сброс бита txc0

Сообщение от alex_t2 Посмотреть сообщение
Так может в рабочий асм-проект что-то впиливается.
Так как "для авр редко и на си", с учётом
Сообщение от sanya_chi Посмотреть сообщение
Обычно пишу для 8051 и ARM.
с немалой вероятностью речь о асмовской вставке в си-код. Писать на асме для меги328, где памяти 32 кб, большинство задач - бессмысленно. Вряд ли человек , работающий с авр редко и на С, бует писать софтовый УСБ например.
Someone вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дисплеи от сотовых (схемы подключения, код, datasheet) dosikus Микроконтроллеры, АЦП, память и т.д 1679 20.05.2023 15:50
Софтовый сброс atxmega128a1u, где хранить данные об этом imhoteb AVR 10 08.02.2018 17:26
Сброс PIC16F689 realadmin666 Микроконтроллеры, АЦП, память и т.д 0 26.09.2009 14:11
Идет сброс контроллера PIC16F676 nikita11235813 Коллекция глюков 2 18.09.2009 15:49
Загадочный сброс предделителя таймеров 0 и 1 Меги16 analitik33 Микроконтроллеры, АЦП, память и т.д 1 29.10.2008 13:05


Часовой пояс GMT +4, время: 16:26.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot