Макросы для STM8
Как я уже писал ранее (Макросы для 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)
П.С. Рекомендую всегда просматривать последние проекты для получения более “свежих” исходников.
Please enable JavaScript to view the comments powered by Disqus.
comments powered by