got LEDs working, ribbon trail program initially implemented
- fixed soft I2C master set hi/lo routines - fixed bug in matrix_send not setting all LEDs from map - fix AWU interrupt not firing; requires EXTI line to be configured too even if unused - fixed wrong dividers used in system clock set function
This commit is contained in:
@@ -46,27 +46,31 @@
|
||||
|
||||
#define SDA_PIN 9
|
||||
#define SDA_BIT (1 << SDA_PIN)
|
||||
#define SDA_CONFOFF ((SDA_PIN % 8) * 4)
|
||||
#define SDA_CONFOFFS ((SDA_PIN % 8) * 4)
|
||||
#define SDA_GPIO GPIOB
|
||||
#define SDA_CFGR GPIOB->CFGHR
|
||||
#define SDA_CFGR SDA_GPIO->CFGHR
|
||||
|
||||
#define SCL_PIN 8
|
||||
#define SCL_BIT (1 << SCL_PIN)
|
||||
#define SCL_CONFOFF ((SCL_PIN % 8) * 4)
|
||||
#define SCL_CONFOFFS ((SCL_PIN % 8) * 4)
|
||||
#define SCL_GPIO GPIOB
|
||||
#define SCL_CFGR GPIOB->CFGHR
|
||||
#define SCL_CFGR SCL_GPIO->CFGHR
|
||||
|
||||
#define GPIO_CFG_LO 0x1
|
||||
#define GPIO_CFG_HI 0x8
|
||||
#define GPIO_CFG_HI 0x4
|
||||
|
||||
|
||||
#define SDA_IN_HI() { SDA_CFGR &= ~(0xf << SDA_CONFOFF); SDA_CFGR |= (GPIO_CFG_HI << SDA_CONFOFF); }
|
||||
#define SDA_OUTLO() { SDA_CFGR &= ~(0xf << SDA_CONFOFF); SDA_CFGR |= (GPIO_CFG_LO << SDA_CONFOFF); }
|
||||
#define SDA_IN_HI() { uint32_t sda = SDA_CFGR & ~(0xf << SDA_CONFOFFS); \
|
||||
sda |= (GPIO_CFG_HI << SDA_CONFOFFS); SDA_CFGR = sda; }
|
||||
#define SDA_OUTLO() { uint32_t sda = SDA_CFGR & ~(0xf << SDA_CONFOFFS); \
|
||||
sda |= (GPIO_CFG_LO << SDA_CONFOFFS); SDA_CFGR = sda; }
|
||||
#define SDA_SET_LO() SDA_GPIO->BCR = SDA_BIT
|
||||
#define SDA_GET() ( SDA_GPIO->INDR & SDA_BIT )
|
||||
|
||||
#define SCL_IN_HI() { SCL_CFGR &= ~(0xf << SCL_CONFOFF); SCL_CFGR |= (GPIO_CFG_HI << SCL_CONFOFF); }
|
||||
#define SCL_OUTLO() { SCL_CFGR &= ~(0xf << SCL_CONFOFF); SCL_CFGR |= (GPIO_CFG_LO << SCL_CONFOFF); }
|
||||
#define SCL_IN_HI() { uint32_t scl = SCL_CFGR & ~(0xf << SCL_CONFOFFS); \
|
||||
scl |= (GPIO_CFG_HI << SCL_CONFOFFS); SCL_CFGR = scl; }
|
||||
#define SCL_OUTLO() { uint32_t scl = SCL_CFGR & ~(0xf << SCL_CONFOFFS); \
|
||||
scl |= (GPIO_CFG_LO << SCL_CONFOFFS); SCL_CFGR = scl; }
|
||||
#define SCL_SET_LO() SCL_GPIO->BCR = SCL_BIT
|
||||
#define SCL_GET() ( SCL_GPIO->INDR & SCL_BIT )
|
||||
|
||||
|
||||
Reference in New Issue
Block a user