реклама на сайте
подробности

 
 
> Atmega3250 PORTJ (7ми битный порт), проблема с установкой произвольного бита
toshas
сообщение Sep 18 2008, 17:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Добрый вечер!

есть atmega3250, PORTJ имеет только 7 бит, программа codevision 1.24.7f:
при явном задании PORTJ=0b0000010 бит1 правильно ставится в "1" и на ножке 5 вольт.
необходимо изменить бит1 не затронув остальные.
конструкция PORTJ = PORTJ ^ (1 << 1) работающая на 8ми битных портах здесь дает следующее:
на ножке вольтметр показывает 2.5В и соответственно осциллограф периодическое переключение 0-1

как правильно написать код ?

спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Petka
сообщение Sep 19 2008, 07:05
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(toshas @ Sep 18 2008, 21:42) *
конструкция PORTJ = PORTJ ^ (1 << 1) работающая на 8ми битных портах здесь дает следующее:
на ножке вольтметр показывает 2.5В и соответственно осциллограф периодическое переключение 0-1

конструкция PORTJ = PORTJ ^ (1 << 1)
ИНВЕРТИРУЕТ 1 бит
а конструкция PORTJ = PORTJ | (1 << 1)
УСТАНАВЛИВАЕТ 1 бит
если вы в цикле напишите инвертирование, то как раз получите переключение и мультиметр покажет нечто среднее (~2.5V), т.к. измеряет постоянку.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th July 2025 - 14:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01523 секунд с 7
ELECTRONIX ©2004-2016