|
|
文件名称:Makefile
文件路径:contiki-3.0\examples\sm14z2538\TM1638A
源码分析:
引用系统api
引用tm1638驱动文件
- #include "dev/TM1638-arch.h"
复制代码 引用输入输出接口api
- #include <stdio.h> /* For printf() */
复制代码 定义数码管段码
- const unsigned char CathodeCode[ 0x11 ] = { 0X3F, 0X06, 0X5B, 0X4F, 0X66, 0X6D, 0X7D, 0X07, 0X7F, 0X6F, 0X77, 0X7C, 0X39, 0X5E, 0X79, 0X71, 0XFF };
复制代码 声明一个tm1638a_process进程
- PROCESS(TM1638A_process, "TM1638A");
复制代码 自动启动这个进程
- AUTOSTART_PROCESSES(&TM1638A_process);
复制代码 进程实现
- PROCESS_THREAD(TM1638A_process, ev, data)
- {
- //进程开始
- PROCESS_BEGIN();
- //定义变量
- unsigned int i,j,k;
- unsigned int Key=0;
- //创建时间定时器对象
- static struct etimer et;
- //设置时间定时器
- etimer_set(&et, CLOCK_SECOND);
- //初始化tm1638
- TM1638_init();
-
- Write_COM( DISPLAY_ON ); /* 开显示 */
- Write_COM( ADDRESS_FIX_MODE ); /* 地址固定模式 */
- Write_COM( SET_PLUS_WIDTH4 ); //设置亮度
- for (j=0;j<17;j++)
- {
- dispclear();
- for(i=0;i<8;i++)
- {
- display(i,CathodeCode[j]);
- disp();//显示
- }
- for(k=0;k<1000;k++)
- clock_delay_usec(1000);
- }
- //循环显示
- while(1) {
- //获得按键值
- Key = Read_key_A();
- //判断按键是否按下
- if(Key > 0)
- {
- //清空显示
- dispclear();
- //显示按键值
- display(1,CathodeCode[Key/10]);
- display(0,CathodeCode[Key%10]);
- disp();
- }
- }
- //进程结束
- PROCESS_END();
- /*测试*/
- }
复制代码
|
|