pt2258.c
上传用户:caisangzi8
上传日期:2013-10-25
资源大小:15756k
文件大小:1k
源码类别:

DVD

开发平台:

C/C++

  1. #ifdef PT2258
  2. #define PT2258_ADDR  0x88
  3. #define  PT2258_ALL_1dB  0xe0
  4. #define  PT2258_ALL_10dB  0xd0
  5. #define  PT2258_CH1_1dB  0x90
  6. #define  PT2258_CH1_10dB  0x80
  7. #define  PT2258_CH2_1dB  0x50
  8. #define  PT2258_CH2_10dB  0x40
  9. #define  PT2258_CH3_1dB  0x10
  10. #define  PT2258_CH3_10dB  0x00
  11. #define  PT2258_CH4_1dB  0x30
  12. #define  PT2258_CH4_10dB  0x20
  13. #define  PT2258_CH5_1dB  0x70
  14. #define  PT2258_CH5_10dB  0x60
  15. #define  PT2258_CH6_1dB  0xb0
  16. #define  PT2258_CH6_10dB  0xa0
  17. #define  PT2258_CLR_ALL  0xf0
  18. #define  PT2258_MUTE_ALL  0xf9
  19. #define  PT2258_UNMUTE_ALL  0xf8
  20. BYTE channel_reg[14] ={
  21. PT2258_ALL_1dB,PT2258_ALL_10dB,
  22. PT2258_CH1_1dB,PT2258_CH1_10dB,
  23. PT2258_CH2_1dB,PT2258_CH2_1dB,
  24. PT2258_CH3_1dB,PT2258_CH3_10dB,
  25. PT2258_CH4_1dB,PT2258_CH4_10dB,
  26. PT2258_CH5_1dB,PT2258_CH5_10dB,
  27. PT2258_CH6_1dB,PT2258_CH6_10dB,
  28. };
  29. /*
  30. channel: 0--6
  31.  0-->main vol
  32.  1-6->sub channel vol
  33. vol:0-->79dB
  34. */
  35. void subvol_channel_volume(BYTE channel,BYTE vol)
  36. {
  37. BYTE data1,data2;
  38. vol = 79 -vol;
  39. vol = bin2bcd(vol);
  40. data1 = channel_reg[channel*2];
  41. data1 |=(0x0f&vol);
  42. data2 = channel_reg[channel*2+1];
  43. data2 |= (0x0f&(vol>>4));
  44. WriteToI2c(PT2258_ADDR, data1, &data2, 1);
  45. }
  46. void init_pt2258(void)
  47. {
  48. BYTE data1,data2,ch;
  49. data1 = PT2258_CLR_ALL;
  50. data2 = PT2258_UNMUTE_ALL;
  51. WriteToI2c(PT2258_ADDR,data1,&data2,1);
  52. }
  53. #endif