在线时间56 小时
UID3297826
注册时间2016-7-27
NXP金币0
TA的每日心情 | 开心 2017-1-13 17:13 |
---|
签到天数: 12 天 连续签到: 1 天 [LV.3]偶尔看看II
中级会员
 
- 积分
- 494
- 最后登录
- 2018-1-6
|
本帖最后由 191925882 于 2016-12-19 01:09 编辑
一.团队介绍
二.项目介绍 开头了。头开好了再继续往下奋斗就容易很多。感觉NXP的板的库和ST的也差别不是很大。那么久没动是就是感觉新东西,不知道如何下手,用库用久了换个单片机就傻眼了。多谢NXP社区。
首先得搭建延时函数,然后再通过循环一下操作:点led1-->延时1s-->灭led1-->led2-->延时1s-->灭led2--------------->led8-->延时1s-->灭led8
由于GIF图片软件中间去掉了很多图片,故看起来不那么自然:
三.源代码
下面是源代码:
#include <stdio.h>
#include "board.h"
#define TICKRATE_HZ (10) /* 10 ticks per second */
//搭建延时函数
static uint8_t facUs=0;
static uint16_t facMs=0;
void Delay_Init(uint32_t SYSCLK)
{
facUs=(uint8_t)(SYSCLK / 2 / 1000000);
facMs =(uint16_t)(SYSCLK / 2 / 1000);
}
void Delay_Us(uint16_t nus)
{
uint32_t temp;
SysTick->LOAD = nus * facUs - 1;
SysTick->VAL = 0x00;
SysTick->CTRL = 0x01;
do
{
temp = SysTick->CTRL;
}
while(temp & 0x01 && !(temp & (1 << 16)));
SysTick->CTRL = 0x00;
SysTick->VAL = 0x00;
}
void Delay_Ms(uint16_t nms)
{
uint32_t temp;
SysTick->LOAD = nms * facMs - 1;
SysTick->VAL=0x00;
SysTick->CTRL = 0x01;
do
{
temp = SysTick->CTRL;
}
while(temp & 0x01 && !(temp & (1 << 16)));
SysTick->CTRL = 0x00;
SysTick->VAL = 0x00;
}
/**
* @brief main routine for blinky example
* @return Function should not exit.
*/
int main(void)
{
// SystemCoreClockUpdate»á¸üÐÂÈ«¾Ö±äÁ¿µÄÖµ£¬Òò´ËÖ»ÄÜÔÚ½øÈëmain()ºóÔÙµ÷ÓÃ
SystemCoreClockUpdate(); Delay_Init();
Board_Init();
DEBUGSTR("Blinky sequencer demo\r\n");
DEBUGOUT("System Clock: %uMHz\r\n", SystemCoreClock / 1000000);
DEBUGOUT("Device ID: 0x%x\r\n", Chip_SYSCTL_GetDeviceID());
Board_LED_Set(0, false);
/* Enable SysTick Timer */
SysTick_Config(SystemCoreClock / TICKRATE_HZ);
//一直循环下去,进行流水灯的跑动
/* Loop forever */
while (1) {
Board_LED_Set(0,1);
Delay_Ms(1000);
Board_LED_Set(0,0);
Board_LED_Set(1,1);
Delay_Ms(1000);
Board_LED_Set(1,0);
Board_LED_Set(2,1);
Delay_Ms(1000);
Board_LED_Set(2,0);
Board_LED_Set(3,1);
Delay_Ms(1000);
Board_LED_Set(3,0);
Board_LED_Set(4,1);
Delay_Ms(1000);
Board_LED_Set(4,0);
Board_LED_Set(5,1);
Delay_Ms(1000);
Board_LED_Set(5,0);
Board_LED_Set(6,1);
Delay_Ms(1000);
Board_LED_Set(6,0);
Board_LED_Set(7,1);
Delay_Ms(1000);
Board_LED_Set(7,0);
}
}
|
|