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

 
 
> Не могу понять, как именно работают регистры
ZhukV
сообщение Aug 2 2012, 06:12
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 26-07-12
Пользователь №: 72 921



Вот есть простенький код:

Код
#include <tiny13a.h>

void main(void)
{
    DDRB = 0b00000001;
    PORTB = 0b00000001;  
      
    while (1) {
        if (PORTB.4 == 0) {
            PORTB.0 = 1;
        }              
        else {
            PORTB.0 = 0;
        }
    }    
}


Идея такова: Свтодиод светиться на пине 0. Когда я подаю сигнал (логическую еденицу) на пин 4, то он должен погаснуть. Проверяю в цыкле.
Но код не работает на контроллере. Для проверки, пин4 соединял вместе с VCC.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
hd44780
сообщение Aug 2 2012, 06:17
Сообщение #2


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

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(ZhukV @ Aug 2 2012, 09:12) *
Но код не работает на контроллере. Для проверки, пин4 соединял вместе с VCC.


И не будет работать. У тебя ошибка. Надо проверять так:

if (PINB.4 == 1)
{
..........
}

И ногу соединять с vcc надо через резюк типа 1кил....
А самое нормальное - включить на 4-й ноге pull-up, а ногу в лоб к земле кнопкой:

PORTB = 0b00010001;
...........
if (PINB.4 == 0)
{ // кнопку нажали
..........
}

Сообщение отредактировал hd44780 - Aug 2 2012, 06:22


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 12:59
Рейтинг@Mail.ru


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