simple.c

来自「在ucos-ii下用LPC2290的spi端口驱动M65的液晶屏」· C语言 代码 · 共 92 行

C
92
字号
/* ***********************************************************************
**
**  Copyright (C) 2005  Christian Kranz
**
**  Siemens S65 Display Control for L2F50 Display with Epson Controller
**
*********************************************************************** */
/*********************************************
* Chip type           : ATMEGA128
* Clock frequency     : clock 16 MHz
*********************************************/


#include "disp.h"

const uint16 pot10[4] ={10,100,1000,10000};

void ubi2dec( uint16 val,  char *strg, uint8 nzero);
void ubi2dec( uint16 val,  char *strg, uint8 nzero)
/*
  convert unsigned int16 value to a character string
  stringlength has to be 6 character 65536 + the final 0
  
  if nzero==0, no leading zeros
  if nzero==1, with leading zeros  
*/
{
   dec,idx=4,odx=0;
  
  do
  {
    idx--;
    for (dec=0; val>=pot10[idx]; val-=pot10[idx])
    {
      dec++;
    }
    nzero+=dec;
    if (nzero) strg[odx++]='0'+dec;
  } while(idx);
  strg[odx++]='0'+val;
  strg[odx]=0;
}


void print_str(uint8 x, uint8 y, char *txt);
void print_str(uint8 x, uint8 y, char *txt)
{
  uint8 i=0;
  while (txt[i]!=0)
  {
    put_char(x+i*CHAR_W,y,txt[i],1);
    i++;
  }

}

int main(void)
{
  uint8 i;
  uint16 cnt;
  char nr[7];
  
  char txt[]=". Zeile L2F\0";

  port_init();

  lcd_init_c();
  backcolor=0xFFFF;
  textcolor=0x0000;
  fill_screen(0x0780);

  cnt=0;
  while (1)   
  {
    ubi2dec(cnt,nr,1);
    print_str(0       ,(cnt*CHAR_H) % (12*14),nr);
    print_str(5*CHAR_W,(cnt*CHAR_H) % (12*14),txt);

    textcolor=cnt;
    
    cnt++;
    
    
    
  // _delay_ms(100);
  
  
  }
  return(0);	  
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?