Частина 14 - подвійний

Сьогодні ми обробимо подвійний тип даних. Як ми вже обговорювали, в Піко немає співпроцесора для обробки чисел з плаваючою точкою, оскільки це обробляється через серію функцій через програмне забезпечення в API. Це те саме стосується подвійної точності.

Давайте працюємо зі простим прикладом. 0x06_double.c as слідує.

#include <stdio.h>
#include "pico/stdlib.h"

int main() 
{
  stdio_init_all();

  while(1) 
  {
    double x = 40.5;

    printf("%f\n", x); 

    sleep_ms(1000);
  }

  return 0;
}

Дуже просто ми призначаємо float 40.5 в x і друкуємо його з форматним модифікатором %f і потім спимося на 1 секунду.

Давайте створимо новий каталог 0x06_double and додамо наш CMakeLists.txt file в нього.

cmake_minimum_required(VERSION 3.13)

include(pico_sdk_import.cmake)

project(test_project C CXX ASM)
set(CMAKE_C_STANDARD 11) 
set(CMAKE_CXX_STANDARD 17)  pico_sdk_init()

add_executable(0x06_double
  0x06_double.c
)

pico_enable_stdio_usb(0x06_double 1)

pico_add_extra_outputs(0x056_double)

target_link_libraries(0x06_double pico_stdlib)

Наступне, нам потрібно скопіювати pico_sdk_import.cmake file з зовнішнього каталогу в інсталяцію pico-sdk в каталог 0x06_double project.

cp../pico-sdk/external/pico_sdk_import.cmake.

Останнім кроком є підготовка до будівництва.

mkdir build
cd build
export PICO_SDK_PATH=../../pico-sdk
cmake..
make

Затем просто скопіюйте .uf2_ file в диск.

cp 0x06_double.uf2 /Volumes/RPI-RP2

Затем нам потрібно знайти зовнішній диск, щоб ви могли виконати наступні дії.

ls /dev/tty.

Натисніть табуляцію, щоб знайти диск, а потім у моїй ситуації я використовую screen для підключення.

screen /dev/tty.usbmodem0000000000001

Ви повинні побачити 40.5 друкується кожну секунду.

40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000
40.500000

У наступному урокі ми навчимося відлагоджувати.

results matching ""

    No results matching ""