Write a counter function for a microcontroller that would count from 0x10 to 0x1E incrementing with every button press. Sample code:
When the switch button (PF4) is pressed, the LED has to light up. When the button is released, the LED switches off. Following press of the button turns on a different color LED light. 0x10 -> OFF, 0x12 -> RED, 0x14 -> BLUE, 0x16 -> MAGENTA, 0x18 -> GREEN, 0x1A -> YELLOW, 0x1C -> CYAN, 0x1E -> WHITE. Write a counter function for a microcontroller that would count from 0x10 to 0x1E incrementing with every button press. Sample code:
#include <stdio.h>
#include <stdint.h>
#include "tm4c123gh6pm.h"
int main(void)
{
SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOF;
//(PF1 - PF3)
GPIO_PORTF_DIR_R = 0x0E;
//(PF1 - PF4)
GPIO_PORTF_DEN_R = 0x1E;
//(PF4) pull up
GPIO_PORTF_PUR_R = 0x10;
while(1)
{
if(GPIO_PORTF_DATA_R & 0x10)
GPIO_PORTF_DATA_R &= ~(0x0E);
else
GPIO_PORTF_DATA_R |= (0x0E);
}
return 0;
}
Step by step
Solved in 2 steps