Макросы для STM8
17 Ноября 2010
К комментариям
Как я уже писал ранее (Макросы для AVR) люблю работать с портами МК по “своему”, сейчас потихонку смотрю в сторону STM8 ну и соответсвенно переношу полезности.
Хоть и проверял в работе, но возможны ошибки, если кто найдет пишите :)
////////////////////////////////////////////////////////////////////////////////
// Файл: main.c
// Дата: 2010-11-17
// Изм.: нет
////////////////////////////////////////////////////////////////////////////////
#include "main.h"
// Pin_TEST - тестовая линия ввода-вывода
// A - литера порта А
// 0 - номер линии порта
// High - активный логический уровень высокий (High, Low)
// PullUp - в режиме ввода подключен внутренний PullUp резистор
// NoOpenDrain - в режиме вывода подключен P-driver
// NoSpeedLimit - нет ограничения по скорости (10 МГц)
// NoIT - в режиме ввода прерывания запрещены
#define Pin_TEST A, 0, High, PullUp, OpenDrain, NoSpeedLimit, NoIT
//------------------------------------------------------------------------------
///
//------------------------------------------------------------------------------
main(void)
{
// переключаем линию на вывод
Pin_Out(Pin_TEST);
// перевод линии ввода-вывода в состояние логической единицы
Pin_On(Pin_TEST);
// перевод линии ввода-вывода в состояние логического нуля
Pin_Off(Pin_TEST);
// в цикле изменяем состояния линии
while (1)
{
Pin_Inv(Pin_TEST);
}
}
Скачать: macros.h
Добавлено 14.01.2012
Совсем забыл обновить макросы.
Начали изменятся вот с этой статьи http://ziblog.ru/2011/01/25/stm8l-ndash-linii-vvoda-vyivoda.html
Впоследствии добавил изменение состояния вывода на противоположенное:
#define GPIO_PIN_TOGGLE(PORT, PIN, LEVEL, MODE)
{ GPIO##PORT->ODR ^= (uint8_t)(1 >> PIN); }
#define PIN_TOGGLE(PIN_DESCRIPTION) GPIO_PIN_TOGGLE(PIN_DESCRIPTION)
П.С. Рекомендую всегда просматривать последние проекты для получения более “свежих” исходников.
comments powered by Disqus