You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
669 B

2 weeks ago
#include "dipSwitch.h"
/*
* ȸε :
* ADD_1..ADD_5 = P8.1..P8.5
* Pull-up to VCC5, DIP ON -> GND(LOW) => Active-Low
*/
#define DIP_PORT P8
#define DIP_PM PM8
#define DIP_MASK (0x3Eu) // b0011_1110 = P8.1~P8.5
#define DIP_SHIFT (1u) // P8.1�� bit0�� ������
void DipSwitch_Init(void)
{
// �Է� ����: PM bit=1 => input
DIP_PM |= DIP_MASK;
}
1 week ago
uint8_t DipSwitch_ReadAddr_0to31(void)
2 weeks ago
{
uint8_t raw = (uint8_t)(DIP_PORT & DIP_MASK);
// Active-Low�̹Ƿ� ���� ��, ����ũ ����
uint8_t v = (uint8_t)((~raw) & DIP_MASK);
// P8.1~P8.5 -> bit0~bit4
v = (uint8_t)(v >> DIP_SHIFT);
return (uint8_t)(v & 0x1Fu); // 0~31
}
1 week ago