[经验] 【我与TI的结缘】+Launchpad学习之路

常见泽1   2015-1-18 15:41 楼主
在11年左右接触到TI家的单片机,一切都源于论坛的TI活动,很幸运的获得了launchpad开发板,由此走入了TI的大家庭,由于没有利用其做过实际产品,也没体会到其强大之处,不过在学习过程中,还是感受到了TI产品的很多特质。我们来看看launchpad的实物图片 1.jpg 虽然小巧,不过还是很精致。 由于有段时间对lcd的打点画线比较感兴趣,就采用了launchpad作为主控模块,来玩了玩这个。。 2.jpg 画点方法在之前的帖子里已经介绍过一点点,主要还是采用了ZLG的程序模版
  1. /*-------------------------------------------------------------------
  2. 增加画点子程序
  3. -------------------------------------------------------------------*/
  4. void DrawPoint(unsigned char X,unsigned char Y,unsigned char Color)
  5. {
  6. unsigned char Row,Tier,Tier_bit;
  7. unsigned char ReadOldH=0x00;
  8. unsigned char ReadOldL=0x00 ;
  9. LCD_Com(0x34);
  10. LCD_Com(0x36);
  11. Tier = X >> 4 ; //算出它在哪一个字节(地址)// x/16 // 右移4位,即除16并取整,得对应要写入12864的横坐标DX
  12. Tier_bit = X&0x0f ;//
  13. if(Y<32)
  14. {
  15. Row=Y ;
  16. }
  17. else // //y坐标大于31,要上屏显示,DX也相应加8
  18. {
  19. Row=Y-32 ;
  20. Tier+=8 ;
  21. }
  22. LCD_Com(0x80+Row);
  23. LCD_Com(0x80+Tier);
  24. ReadByte();
  25. ReadOldH=ReadByte();
  26. ReadOldL=ReadByte();
  27. LCD_Com(0x80+Row);
  28. LCD_Com(0x80+Tier);
  29. if(Tier_bit<8) //x在DX中处于低8位(按预想坐标看),但在LCD内坐标系中属于高8位,对应ReadOldH
  30. {
  31. ReadOldH|= (0x80>> Tier_bit); //写高字节。因为坐标是从左向右的//而GDRAM高位在左,底位在
  32. }
  33. else
  34. {
  35. ReadOldL |= (0x80 >>(Tier_bit -8));
  36. }
  37. LCD_Dat(ReadOldH);
  38. LCD_Dat(ReadOldL);
  39. LCD_Com(0x30);
  40. }
显示 3.jpg 画线 在画点出来之后,画线就简单了 4.jpg 画任意直线采用了Bresenham画线算法,这个网上资料比较多简单的步骤 1.画起点(x1,y1). 2.准备画下个点。x坐标增1,判断如果达到终点,则完成。否则,由图中可知,下个要画的点要么为当前点的右邻接点,要么是当前点的右上邻接点. 2.1.如果线段ax+by+c=0与x=x1+1的交点的y坐标大于M点的y坐标的话,下个点为U(x1+1,y1+1) 2.2.否则,下个点为B(x1+1,y1) 3.画点(U或者B). 4.跳回第2步. 5.结束. 画线画出来之后的图像: 5.jpg 本帖最后由 常见泽1 于 2015-1-18 15:42 编辑

回复评论 (1)

楼主玩儿的开心,俺看的也痛快.
点赞  2015-1-18 16:53
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复