/* * file hello_world_debug_console_test.c * * Copyright (C) 2024 MACNICA,Inc. All Rights Reserved. * This software is licensed "AS IS". * Please perform use of this software by a user's own responsibility and expense. * It cannot guarantee in the maker side about the damage which occurred * by the ab-ility not to use or use this software, and all damage that occurred secondarily. * Created on: 2024/09/10 */ #include "fsl_device_registers.h" #include "fsl_debug_console.h" #include "pin_mux.h" #include "clock_config.h" #include "board.h" #include "fsl_clock.h" /******************************************************************************* * Definitions ******************************************************************************/ /******************************************************************************* * Prototypes ******************************************************************************/ /******************************************************************************* * Variables ******************************************************************************/ /******************************************************************************* * Code ******************************************************************************/ /*! * @brief Main function */ int main(void) { char ch; /* Init board hardware. */ /* attach FRO 12M to FLEXCOMM4 (debug console) */ CLOCK_SetClkDiv(kCLOCK_DivFlexcom4Clk, 1u); CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH); /* attach TRACECLKDIV to TRACE */ CLOCK_SetClkDiv(kCLOCK_DivTraceClk, 2U); CLOCK_AttachClk(kTRACE_DIV_to_TRACE); BOARD_InitPins(); BOARD_InitBootClocks(); BOARD_InitDebugConsole(); PRINTF("hello world.\r\n"); // 変数の宣言 int i; float f; double d; char str[100]; char c; unsigned int u; long int li; long long int lli; unsigned long long int ulli; // printf のテスト PRINTF("=== printf のテスト ===\n\r"); // 整数の出力 i = 12345; PRINTF("整数(%%d, %%i): %d, %i\r\n", i, i); // 16進数、8進数、符号なし整数 PRINTF("符号なし整数(%%u): %u\r\n", i); PRINTF("16進数(%%x, %%X): %x, %X\r\n", i, i); PRINTF("8進数(%%o): %o\r\n", i); // 浮動小数点数の出力 f = 3.14159f; PRINTF("浮動小数点数(%%f): %f\r\n", f); // long, long long, unsigned long long の出力 li = 1234567890L; lli = 123456789012345LL; ulli = 12345678901234567890ULL; PRINTF("long int(%%ld): %ld\r\n", li); PRINTF("long long int(%%lld): %lld\r\n", lli); PRINTF("unsigned long long int(%%llu): %llu\r\n", ulli); // 文字列と文字の出力 PRINTF("文字列(%%s): %s\r\n", "Hello, World!"); PRINTF("文字(%%c): %c\r\n", 'A'); // 幅指定、ゼロ埋め、左寄せ、符号付 PRINTF("幅指定(%%10d): %10d\r\n", i); PRINTF("ゼロ埋め(%%010d): %010d\r\n", i); PRINTF("左寄せ(%%-10d): %-10d\r\n", i); PRINTF("符号付(%%+d): %+d\r\n", i); PRINTF("=== printf のテスト End ===\n\r"); // scanf のテスト PRINTF("\n=== scanf のテスト ===\r\n"); // 整数の入力 PRINTF("整数を入力してください: "); SCANF("%d", &i); PRINTF("入力された整数: %d\r\n", i); // 符号なし整数の入力 PRINTF("符号なし整数を入力してください: "); SCANF("%u", &u); PRINTF("入力された符号なし整数: %u\r\n", u); // 浮動小数点数の入力 PRINTF("浮動小数点数を入力してください: "); SCANF("%f", &f); PRINTF("入力された浮動小数点数: %f\r\n", f); // 文字列の入力 PRINTF("文字列を入力してください: "); SCANF("%s", str); PRINTF("入力された文字列: %s\r\n", str); // 文字の入力 PRINTF("文字を入力してください: "); SCANF(" %c", &c); // スペースを入れて、前の改行を無視 PRINTF("入力された文字: %c\r\n", c); // long long int の入力 PRINTF("long long int を入力してください: "); SCANF("%lld", &lli); PRINTF("入力された long long int: %lld\r\n", lli); // unsigned long long int の入力 PRINTF("unsigned long long int を入力してください: "); SCANF("%llu", &ulli); PRINTF("入力された unsigned long long int: %llu\r\n", ulli); PRINTF("\n=== scanf のテスト End ===\r\n"); while (1) { ch = GETCHAR(); PUTCHAR(ch); } }