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.
119 lines
2.8 KiB
119 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(;;) {
|
|
McuLED_Toggle(tinyLED);
|
|
vTaskDelay(pdMS_TO_TICKS(1000));
|
|
}
|
|
}
|
|
#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", 500/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 ;
|
|
}
|
|
|