Back to posts Edit this post
Copy content

06 Dec 11:14

1:1 chat nie dziala
#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 main(void) { uint8_t countH = 0; // Liczba naciśnięć przycisku na porcie H uint8_t countJ = 0; // Liczba naciśnięć przycisku na porcie J uint8_t difference = 0; // Różnica liczby naciśnięć (countH - countJ) // Set the clocking to run directly from the crystal. ROM_SysCtlClockSet(SYSCTL_SYSDIV_20 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ); // Enable GPIOA, GPIOJ, GPIOE, GPIOG SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG); // Set all GPIOA, GPIOE, and GPIOG pins as outputs GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PINS_ALL); GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PINS_ALL); GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PINS_ALL); // Set GPIOJ pins as inputs for buttons GPIOPinTypeGPIOInput(GPIO_PORTJ_BASE, GPIO_PIN_6 | GPIO_PIN_7); for (;;) { // Check button press on port J7 (increment countJ) if (GPIOPinRead(GPIO_PORTJ_BASE, GPIO_PIN_7) == 0) // Button pressed { countJ++; while (GPIOPinRead(GPIO_PORTJ_BASE, GPIO_PIN_7) == 0); // Wait for button release } // Check button press on port J6 (increment countH) if (GPIOPinRead(GPIO_PORTJ_BASE, GPIO_PIN_6) == 0) // Button pressed { countH++; while (GPIOPinRead(GPIO_PORTJ_BASE, GPIO_PIN_6) == 0); // Wait for button release } // Calculate the difference between countH and countJ difference = countH - countJ; // Show the countH and countJ on LEDs connected to ports A and E GPIOPinWrite(GPIO_PORTA_BASE, 0xFF, countH); // Display countH on port A GPIOPinWrite(GPIO_PORTE_BASE, 0xFF, countJ); // Display countJ on port E // Show the difference on LEDs connected to port G GPIOPinWrite(GPIO_PORTG_BASE, 0xFF, difference); // Display difference on port G // Delay for a while so changes can be visible SysCtlDelay(SysCtlClockGet() / 2); } return 0; }

No files