You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
ASYD/ASYD_Trends/ASYD_tinyK22_Blinky/source/main.c

118 lines
2.8 KiB

/**
* @file ASYD_tinyK22_Blinky.c
* @brief Application entry point.
*/
#include <stdio.h>
#include "board.h"
#include "peripherals.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "MK22F51212.h"
#include "fsl_debug_console.h"
#include "McuLib.h"
#include "McuWait.h"
#include "McuGPIO.h"
#include "McuLED.h"
#include "McuButton.h"
#include "McuRTOS.h"
#include "McuShell.h"
#include "McuShellUart.h"
#include "McuRTT.h"
#include "McuSystemView.h"
static McuLED_Handle_t tinyLED;
static McuBtn_Handle_t button;
#if McuLib_CONFIG_SDK_USE_FREERTOS
static void blinkyTask(void *pv) {
for(;;) {
vTaskDelay(pdMS_TO_TICKS(10));
}
}
#endif
static void blink(void) {
for(;;) {
McuLED_Toggle(tinyLED);
if (McuBtn_IsOn(button)) {
McuShell_SendStr((unsigned char*)"pressed!\n", McuShellUart_stdio.stdOut);
}
McuShell_SendStr((unsigned char*)"Hello World!\n", McuShellUart_stdio.stdOut);
McuWait_Waitms(1000);
}
}
static void init(void) {
McuLib_Init();
McuGPIO_Init();
McuLED_Init();
McuBtn_Init();
McuWait_Init();
McuRTT_Init();
McuSystemView_Init();
McuShell_Init();
McuShellUart_Init();
{
McuLED_Config_t config;
#define PINS_LEDBLUE_GPIO GPIOC
#define PINS_LEDBLUE_PORT PORTC
#define PINS_LEDBLUE_PIN 2U
CLOCK_EnableClock(kCLOCK_PortC);
McuLED_GetDefaultConfig(&config);
config.isLowActive = true;
config.hw.pin = PINS_LEDBLUE_PIN;
config.hw.port = PINS_LEDBLUE_PORT;
config.hw.gpio = PINS_LEDBLUE_GPIO;
tinyLED = McuLED_InitLed(&config);
if (tinyLED==NULL) {
for(;;) {}
}
}
{
McuBtn_Config_t btnConfig;
#define PINS_HATNAVPUSH_GPIO GPIOB
#define PINS_HATNAVPUSH_PORT PORTB
#define PINS_HATNAVPUSH_PIN 16u
CLOCK_EnableClock(kCLOCK_PortB);
btnConfig.hw.gpio = PINS_HATNAVPUSH_GPIO;
btnConfig.hw.port = PINS_HATNAVPUSH_PORT;
btnConfig.hw.pin = PINS_HATNAVPUSH_PIN;
btnConfig.hw.pull = McuGPIO_PULL_UP;
button = McuBtn_InitButton(&btnConfig);
}
}
int main(void) {
/* Init board hardware. */
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
#ifndef BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL
/* Init FSL debug console. */
BOARD_InitDebugConsole();
#endif
init();
PRINTF("Hello World\n");
#if McuLib_CONFIG_SDK_USE_FREERTOS
if (xTaskCreate(blinkyTask, "blinky", 1000/sizeof(StackType_t), NULL, tskIDLE_PRIORITY, NULL)!=pdPASS) {
for(;;) {}
}
vTaskStartScheduler();
#endif
/* Force the counter to be placed into memory. */
volatile static int i = 0 ;
/* Enter an infinite loop, just incrementing a counter. */
while(1) {
blink();
i++ ;
/* 'Dummy' NOP to allow source level single stepping of
tight while() loop */
__asm volatile ("nop");
}
return 0 ;
}