三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 427|回复: 0
打印 上一主题 下一主题

tm1638a-tm1638a.c源码分析

[复制链接]

1657

主题

1684

帖子

5684

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5684
跳转到指定楼层
楼主
发表于 2017-6-12 15:06:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文件名称:Makefile
文件路径:contiki-3.0\examples\sm14z2538\TM1638A
源码分析:
引用系统api
  1. #include "contiki.h"
复制代码
引用tm1638驱动文件
  1. #include "dev/TM1638-arch.h"
复制代码
引用输入输出接口api
  1. #include <stdio.h> /* For printf() */
复制代码
定义数码管段码
  1. const unsigned char CathodeCode[ 0x11 ] = {  0X3F, 0X06, 0X5B, 0X4F, 0X66, 0X6D, 0X7D, 0X07, 0X7F, 0X6F, 0X77, 0X7C, 0X39, 0X5E, 0X79, 0X71, 0XFF  };
复制代码
声明一个tm1638a_process进程
  1. PROCESS(TM1638A_process, "TM1638A");
复制代码
自动启动这个进程
  1. AUTOSTART_PROCESSES(&TM1638A_process);
复制代码
进程实现
  1. PROCESS_THREAD(TM1638A_process, ev, data)
  2. {
  3.   //进程开始
  4.   PROCESS_BEGIN();
  5.   //定义变量
  6.   unsigned int i,j,k;
  7.   unsigned int Key=0;
  8.   //创建时间定时器对象
  9.   static struct etimer et;
  10.   //设置时间定时器
  11.   etimer_set(&et, CLOCK_SECOND);
  12.   //初始化tm1638
  13.   TM1638_init();
  14.   
  15.   Write_COM( DISPLAY_ON );        /* 开显示 */
  16.   Write_COM( ADDRESS_FIX_MODE );  /* 地址固定模式 */
  17.   Write_COM( SET_PLUS_WIDTH4 );   //设置亮度
  18.   for (j=0;j<17;j++)
  19.   {
  20.     dispclear();
  21.     for(i=0;i<8;i++)
  22.     {                        
  23.        display(i,CathodeCode[j]);
  24.        disp();//显示               
  25.     }

  26.     for(k=0;k<1000;k++)
  27.        clock_delay_usec(1000);   
  28.   }
  29.   //循环显示
  30.   while(1) {
  31.     //获得按键值
  32.      Key = Read_key_A();
  33.      //判断按键是否按下
  34.      if(Key > 0)
  35.      {
  36.     //清空显示
  37.           dispclear();
  38.     //显示按键值
  39.           display(1,CathodeCode[Key/10]);
  40.           display(0,CathodeCode[Key%10]);
  41.           disp();
  42.      }     
  43.   }
  44.   //进程结束
  45.   PROCESS_END();
  46.   /*测试*/
  47. }
复制代码


回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2026-3-13 00:02 , Processed in 0.025822 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表