Урок 4. Пишем программный код для подключения кнопки к микроконтроллеру CY8C21534.

Схема подключения кнопки и светодиодов:

Обязательно настраиваем ножку  1 порта Р[0] как показано на рисунке, это связано с тем, что мы не где программно  не настраиваем ее больше, а только указываем, что будем ее использовать на вход :

Как видим, мы настроили вход с подтяжкой резистора к питанию, это значит, что микроконтроллер будет реагировать на нажатие кнопки, когда на входе появится логический ноль.

В нашем микроконтроллере мы реализуем реакцию на нажатие кнопки в виде изменения свечения светодиодов. Определять нажатие на кнопку мы будем с помощью маски:

У нас ножка 1 настроена на вход, если она не нажата на ней логическая единица (так как  у нас подтяжка к питанию), таким образом если считать значения всего порта и наложить маску 0b00000010 по логическому и мы получим: 

0bxxxxxx1x & 0b00000010 ->1

При нажатии на кнопку у нас на входе будет логический ноль, и наложив все туже маску мы получим на выходе логический ноль.
Таким образом, накладывая соответствующую маску пол логическому И, мы определяем состояние того или иного бита. 

У нас выходит при нажатии кнопки логический ноль, при отжатой кнопки у нас будет логическая единица.

#include < m8c.h >// part specific constants and macros
#include «PSoCAPI.h»    // PSoC API definitions for all User Modules
#define button 0b00000010 // везде где будет находится слово button, будет подставляться 0b00000010
void main(void)
{
// M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts
// Insert your main routine code here.
PRT0DR= button; // настраиваем Р0[1] на вход. 
LED4_Start();
LED6_Start();
LED4_On(); 
LED6_Off();
while (1)
{
if (PRT0DR & button) //если не нажата кнопка
    {LED4_On();LED6_Off();}
else{LED4_Off();LED6_On();} //если нажата кнопка
 
}
}