В данной лабораторной работе будут изучены основы языка программирования C, базовые навыки работы с отладчиком среды разработки, а также программирование и загрузка программы в Учебный стенд.
При подготовке к данной работе необходимо изучить основы программирования на языке C, научится компилировать и загружать программу.
Примеры c_lang
и c_lang_str
могут выполняться на симуляторе или на учебном стенде.
Для выполнения примера gpio
следует установить переключатели S1 и S2 в положение 0 на учебном стенде.
При этом должен загореться светодиод LED1 While LED, обозначающий режим стенда номер 0.
Переключатели S3 и S4 также должны быть установлены в положении 0.
В этом режиме к выводам микроконтроллера PA0, PA1 подключены два потенциометра POT1 и POT2. Выводы микроконтроллера PA11-PA14 подключены к переключателям SW1-SW4. Выводы микроконтроллера PB4-PB7 подключены к тактовым кнопкам SB1-SB4. К выводам PC0-PC15 подключены 16 светодиодов D1-D16.
На лабораторной работе решаются три задачи:
c_lang
- Язык программирования С. Простейшая программа для ознакомления с возможностями языка программирования С. Программу следует выполнять в отладчике по шагам с отслеживанием изменения состояния переменных.gpio
- Мигающий светодиод. Простейшая программа для включение и выключение светодиода. В программе происходит обращение к регистром специальных функций порта ввода/вывода для управления состояния светодиода.c_lang_str
- Строки в языке программирования C. Использование строк и потока вывода в языке C.
Менеджер пакетов Run-Time Environment
среды разработки имеет модуль Event Recorder
,
который позволяет печатать строки в окне Debug (printf) Viewer
отладчика с помощью
функции printf
.
Для этого в менеджере пакетов Manage Run-Time Environment
необходимо выбрать компонент
Event Recorder
и выбрать перенаправление stdout
на EVR
.
В исходном коде программы необходимо подключить модуль EventRecorder.h
и провести его инициализацию вызвав функцию EventRecorderInitialize(EventRecordAll, 1);
.
После этого можно использовать функцию printf
из стандартной библиотеки stdio.h
.
#include "stdio.h"
#include "EventRecorder.h"
int main(void)
{
EventRecorderInitialize(EventRecordAll, 1);
printf("Hello, world!\n");
for(;;);
}
Для просмотра вывода необходимо открыть окно Debug (printf) Viewer
в отладчике, выбрав View - Serial Windows - Debug (printf) Viewer
.
Вывод printf
: