summaryrefslogtreecommitdiff
path: root/components/screen
diff options
context:
space:
mode:
Diffstat (limited to 'components/screen')
-rw-r--r--components/screen/screen.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/components/screen/screen.c b/components/screen/screen.c
index 99f74b0..8d29265 100644
--- a/components/screen/screen.c
+++ b/components/screen/screen.c
@@ -77,10 +77,12 @@ void configure_screen(struct Screen* screen)
for (uint8_t i = 0; i <= 3; ++i)
{
- mcp_set_mode(screen->mcp, screen->nixies[i].reg, screen->nixies[i].D, MCP_GPIO_OUTPUT);
- mcp_set_mode(screen->mcp, screen->nixies[i].reg, screen->nixies[i].C, MCP_GPIO_OUTPUT);
- mcp_set_mode(screen->mcp, screen->nixies[i].reg, screen->nixies[i].B, MCP_GPIO_OUTPUT);
- mcp_set_mode(screen->mcp, screen->nixies[i].reg, screen->nixies[i].A, MCP_GPIO_OUTPUT);
+ uint8_t reg = REG_IODIRA;
+ if (screen->nixies[i].reg != REG_GPIOA) reg = REG_GPIOB;
+ mcp_set_mode(screen->mcp, reg, screen->nixies[i].D, MCP_GPIO_OUTPUT);
+ mcp_set_mode(screen->mcp, reg, screen->nixies[i].C, MCP_GPIO_OUTPUT);
+ mcp_set_mode(screen->mcp, reg, screen->nixies[i].B, MCP_GPIO_OUTPUT);
+ mcp_set_mode(screen->mcp, reg, screen->nixies[i].A, MCP_GPIO_OUTPUT);
}