#include "gatectrl.h" #define BIT(n) (1u << (n)) // °øÅëÇÉ ¸ÅÇÎ // ALL : P47 -> Port4 bit7 // ZACWIRE : P157 -> Port15 bit7 #define ALL_PM PM4 #define ALL_MASK (uint8_t)BIT(7) #define ZAC_PM PM15 #define ZAC_MASK (uint8_t)BIT(7) static uint8_t s_ch = 1; static void write_port(volatile uint8_t *port, uint8_t mask, uint8_t on) { if (on) *port |= mask; else *port &= (uint8_t)~mask; } void GateCtrl_Init(void) { // °øÅëÇÉ Ãâ·Â ¼³Á¤ ALL_PM &= (uint8_t)~ALL_MASK; ZAC_PM &= (uint8_t)~ZAC_MASK; // ±âº» OFF GateCtrl_SetAll(0); GateCtrl_SetZacwire(0); // ä³Î °ü·Ã ¸ðµâ init hash_init(); check_pin_init(); // ANAOUT_Init()´Â main¿¡¼­ ÇÑ´Ù¸é ¿©±â¼­ Áߺ¹ È£Ãâ X } void GateCtrl_SetAll(uint8_t on) { write_port(&P4, ALL_MASK, on); } void GateCtrl_SetZacwire(uint8_t on) { write_port(&P15, ZAC_MASK, on); } void GateCtrl_ClearChannelPins(void) { hash_all_off(); check_all_off(); anaout_all_off(); } void GateCtrl_SelectChannel(uint8_t ch) { if (ch < 1 || ch > 20) return; s_ch = ch; GateCtrl_ClearChannelPins(); } void GateCtrl_Anaout(uint8_t on) { anaout_pin(s_ch, on); } void GateCtrl_Hash(uint8_t on) { hash_pin(s_ch, on); } void GateCtrl_Check(uint8_t on) { check_pin(s_ch, on); }