Back to posts Edit this post
Copy content

20 Dec 09:52

Mikro
#include <stdint.h> #include <stdbool.h> #include "inc/hw_gpio.h" #include "inc/hw_memmap.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" #include "driverlib/rom.h" #define GPIO_PINS_ALL (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7) int calculateNWD(a, b) { if(a%b != 0) { b = a%b; a = b; calculateNWD(a, b); } else return b; } int main(void) { uint8_t counterH = 0; uint8_t counterJ = 0; uint8_t difference = 0; uint8_t nwd = 0; uint8_t NWW = 0; ROM_SysCtlClockSet(SYSCTL_SYSDIV_20 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PINS_ALL); GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PINS_ALL); GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PINS_ALL); GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PINS_ALL); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PINS_ALL); GPIOPinTypeGPIOInput(GPIO_PORTH_BASE, GPIO_PINS_ALL); GPIOPinTypeGPIOInput(GPIO_PORTJ_BASE, GPIO_PINS_ALL); for (;;) { if (GPIOPinRead(GPIO_PORTH_BASE, GPIO_PINS_ALL)) { counterH++; GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PINS_ALL, counterH); GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PINS_ALL, counterJ); } if (GPIOPinRead(GPIO_PORTJ_BASE, GPIO_PIN_0)) { counterJ++; GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PINS_ALL, counterH); GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PINS_ALL, counterJ); } nwd = calculateNWD(counterH, counterJ); NWW = (counterH*counterJ)/nwd; GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PINS_ALL, nwd); GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PINS_ALL, NWW); difference = counterH - counterJ; GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PINS_ALL, difference); SysCtlDelay(SysCtlClockGet() / 2); } return 0; }

No files