⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vcodec.c

📁 视频COEDC SAA7113 7121 SDK和应用程序
💻 C
字号:
#include <stdio.h>

extern int init_I2C();               /*Initialize the I2C bus*/
extern int write_7113(unsigned char, unsigned char);
extern unsigned char read_7113(unsigned char address);
extern int write_7121(unsigned char address, unsigned char value);
extern unsigned char read_7121(unsigned char address);
extern int release_I2C();            /*Release the I2C bus*/

int main(int argc, char ** argv)
{  
  int i;
  unsigned char value;

  if(argc==2 && *argv[1]>='5'){
    printf("Usage: vcodec <mode>\n");
    printf("  0: Set 7113 and 7121\n");
    printf("  1: Set 7113\n");
    printf("  2: Set 7121\n");
    printf("  3: Read 7113\n");
    printf("  4: Let 7121 output color bar\n");
    printf("  others: print this message\n");
    return 0;
  }

  printf("Beginning to initialize the i2c bus ...\n"); 
  if(init_I2C()){
    return -1;
  }  

  if(argc<=1 || *argv[1]=='0' || *argv[1]=='2' || *argv[1]=='4'){ 
    write_7121(0x26, 0x00);
    write_7121(0x27, 0x00);
    write_7121(0x28, 0x21);
    write_7121(0x29, 0x1d);
    if(argc==2 &&  *argv[1]=='4')
      write_7121(0x3a, 0x93);
    else
      write_7121(0x3a, 0x13);
    write_7121(0x5a, 0x0c);
    write_7121(0x5b, 0x7d);
    write_7121(0x5c, 0xaf);
    write_7121(0x5d, 0x23);
    write_7121(0x5e, 0x35);
    write_7121(0x5f, 0x35);
    write_7121(0x60, 0x00);
    write_7121(0x61, 0x06);
    write_7121(0x62, 0x2f);
    write_7121(0x63, 0xcb);
    write_7121(0x64, 0x8a);
    write_7121(0x65, 0x09);
    write_7121(0x66, 0x2a);
    write_7121(0x67, 0x55);
    write_7121(0x68, 0x56);
    write_7121(0x69, 0x67);
    write_7121(0x6a, 0x58);
    write_7121(0x6b, 0x20);
    write_7121(0x6c, 0x05);
    write_7121(0x6d, 0x20);
    write_7121(0x6e, 0xa0);
    write_7121(0x6f, 0x14);
    write_7121(0x70, 0x80);
    write_7121(0x71, 0xe8);
    write_7121(0x72, 0x10);
    write_7121(0x73, 0x42);
    write_7121(0x74, 0x03);
    write_7121(0x75, 0x03);
    write_7121(0x76, 0x05);
    write_7121(0x77, 0x16);
    write_7121(0x78, 0x04);
    write_7121(0x79, 0x16);
    write_7121(0x7a, 0x18);
    write_7121(0x7b, 0x38);
    write_7121(0x7c, 0x40);
    write_7121(0x7d, 0x00);
    write_7121(0x7e, 0x00);
    write_7121(0x7f, 0x00);
  }  

  if(argc<=1 || *argv[1]=='0' || *argv[1]=='1'){
    write_7113(0x09, 0x01);
    write_7113(0x0A, 0x80);
    write_7113(0x0B, 0x47);
    write_7113(0x11, 0x0C);
    write_7113(0x12, 0xB8);

    write_7113(0x01, 0x08);
    write_7113(0x02, 0xC3);
    write_7113(0x03, 0x33);
    write_7113(0x04, 0x00);
    write_7113(0x05, 0x00);
    write_7113(0x06, 0xEB);
    write_7113(0x07, 0xE0);
    write_7113(0x08, 0xB8);
    write_7113(0x0C, 0x40);
    write_7113(0x0D, 0x00);
    write_7113(0x0E, 0x01);
    //write_7113(0x0F, 0x00);
    write_7113(0x10, 0x00);
    write_7113(0x13, 0x00);
    write_7113(0x14, 0x00);
    write_7113(0x15, 0x00);
    write_7113(0x16, 0x00);
    write_7113(0x17, 0x00);
    for(i=0x18;i<=0x1E;i++)
      write_7113(i, 0x00);
    for(i=0x20;i<=0x3F;i++)
      write_7113(i, 0x00);
    write_7113(0x40, 0x02);
    for(i=0x41;i<=0x57;i++)
      write_7113(i, 0xFF);
    write_7113(0x58, 0x00);
    write_7113(0x59, 0x54);
    write_7113(0x5A, 0x07);
    write_7113(0x5B, 0x83);
    for(i=0x5C;i<=0x5D;i++)
      write_7113(i, 0x00);
    write_7113(0x5E, 0x00);
    write_7113(0x5F, 0x00);
  }
 
  if(argc==2 && *argv[1]=='3'){
    for(i=0x01;i<=0x5F;i++){
      value = read_7113(i);
      printf("Info: Read 0x%02X at SAA7113 0x%02X.\n",value, i);
    }
  }

  printf("Beginning to release the i2c bus ...\n");
  if(release_I2C()){
    return -1;
  }

  return 0;
}

⌨️ 快捷键说明

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