Добавлено API для UART и TMR
This commit is contained in:
@@ -1,53 +1,74 @@
|
||||
/*==============================================================================
|
||||
* Шаблон проекта для К1921ВК035 с использованием бибилотеки PLIB035
|
||||
*------------------------------------------------------------------------------
|
||||
* НИИЭТ, Богдан Колбов <kolbov@niiet.ru>
|
||||
* ЦНИИ СЭТ, Разваляев Алексей <wot890089@mail.ru>
|
||||
*==============================================================================
|
||||
* ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО
|
||||
* ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ
|
||||
* ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ
|
||||
* НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
|
||||
* ПРЕДНАЗНАЧЕНО ДЛЯ ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЕЙ И НАПРАВЛЕНО ТОЛЬКО НА
|
||||
* ПРЕДОСТАВЛЕНИЕ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ О ПРОДУКТЕ, С ЦЕЛЬЮ СОХРАНИТЬ ВРЕМЯ
|
||||
* ПОТРЕБИТЕЛЮ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ
|
||||
* ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА ПРЯМОЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, ИЛИ
|
||||
* ПО ИНЫМ ТРЕБОВАНИЯМ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
|
||||
* ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
|
||||
*
|
||||
* 2018 АО "НИИЭТ"
|
||||
* Конфигурация портов настраивается в gpio.h
|
||||
* ЦНИИ СЭТ
|
||||
*==============================================================================
|
||||
*/
|
||||
|
||||
//-- Includes ------------------------------------------------------------------
|
||||
#include "main.h"
|
||||
#include "rcu.h"
|
||||
#include "gpio.h"
|
||||
|
||||
void restart_receive(void);
|
||||
void heartbit(void);
|
||||
//-- Defines -------------------------------------------------------------------
|
||||
|
||||
uint8_t rxbuff[10] = {0};
|
||||
//-- Peripheral init functions -------------------------------------------------
|
||||
void periph_init()
|
||||
{
|
||||
SystemCoreClockUpdate();
|
||||
sysclk_init();
|
||||
uart_init_first();
|
||||
tmr_init_first();
|
||||
gpio_init();
|
||||
#ifdef RETARGET
|
||||
retarget_init();
|
||||
#endif
|
||||
printf("\nAll peripherals inited, SYSCLK = %3d MHz\n", (int)(SystemCoreClock / 1E6));
|
||||
|
||||
|
||||
uart_set_callback(&huart1, UART_Callback_Rx, &restart_receive);
|
||||
uart_start(&huart1, UART_FIFOLevel_1_8, UART_FIFOLevel_1_8);
|
||||
|
||||
tmr_set_callback(&htmr2, 0, &heartbit);
|
||||
tmr_start(&htmr0);
|
||||
tmr_start(&htmr1);
|
||||
tmr_start(&htmr2);
|
||||
}
|
||||
|
||||
//-- Main ----------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
periph_init();
|
||||
|
||||
uint8_t cnt;
|
||||
uart_receive_it(&huart1, rxbuff, sizeof(rxbuff));
|
||||
uint32_t prev_tick;
|
||||
tmr_delay_start(&htmr0, &prev_tick);
|
||||
while (1) {
|
||||
|
||||
if(tmr_delay_done(&htmr0, 1000000, &prev_tick))
|
||||
{
|
||||
tmr_delay_start(&htmr0, &prev_tick);
|
||||
GPIO_ToggleBits(GPIOA, GPIO_Pin_8);
|
||||
}
|
||||
tmr_delay(&htmr0, 100000);
|
||||
GPIO_ToggleBits(GPIOA, GPIO_Pin_7);
|
||||
// uart_transmit_it(&huart1, (uint8_t*)"Hello World: ", sizeof("Hello World: ")-1);
|
||||
// uart_transmit_it(&huart1, (uint8_t*)"delay 500\r\n", sizeof("delay 500\r\n")-1);
|
||||
};
|
||||
//return 0;
|
||||
}
|
||||
|
||||
void restart_receive(void)
|
||||
{
|
||||
uart_receive_it(&huart1, rxbuff, sizeof(rxbuff));
|
||||
uart_transmit_it(&huart1, rxbuff, sizeof(rxbuff));
|
||||
}
|
||||
|
||||
|
||||
void heartbit(void)
|
||||
{
|
||||
uart_transmit(&huart1, (uint8_t *)"\r\nTick 1 sec\r\n", sizeof("\r\nTick 1 sec\r\n")-1, 1000);
|
||||
}
|
||||
|
||||
//-- Assert --------------------------------------------------------------------
|
||||
void Error_Handler(void)
|
||||
|
||||
Reference in New Issue
Block a user