智能车制作

标题: 大神们,帮忙看看啊,我卡住了 [打印本页]

作者: 917052549    时间: 2013-9-27 10:48
标题: 大神们,帮忙看看啊,我卡住了
void SendHex(unsigned char hex) {
  unsigned char temp;
  temp = hex >> 4;                     为什么要右移4位?
  if(temp < 10) {                           为什么要跟10作比较?
    SCI0_SendChar1(temp + '0');
  } else {
    SCI0_SendChar1(temp - 10 + 'A');
  }
  temp = hex & 0x0F;                  没怎么看懂,,,
  if(temp < 10) {
    SCI0_SendChar1(temp + '0');
  } else {
    SCI0_SendChar1(temp - 10 + 'A');
  }
}
求解救啊!!!!大神们


作者: 凌心    时间: 2013-9-27 11:31
temp = hex >> 4; \\取十六进制的高1位,即:hex/16
if(temp < 10) \\与十比较后可分别转换为字符0-9和字符A-F,后面加'0'和加‘A’就是这个意思
temp = hex & 0x0F;\\前面已经处理了高1位,这步将高1位清零,准备处理低1位
作者: 917052549    时间: 2013-9-27 11:51
凌心 发表于 2013-9-27 11:31
temp = hex >> 4; \\取十六进制的高1位,即:hex/16
if(temp < 10) \\与十比较后可分别转换为字符0-9和字符 ...

大哥,再麻烦一下,那个采样是采样128个点,每个点由一个16进制的数构成吗?例如1A代表一个点???是不是啊?大哥

作者: 凌心    时间: 2013-9-27 11:54
917052549 发表于 2013-9-27 11:51
大哥,再麻烦一下,那个采样是采样128个点,每个点由一个16进制的数构成吗?例如1A代表一个点???是不是 ...

我不知道你是什么东西的采样,看数据应该是一个数代表一个点。

作者: 917052549    时间: 2013-9-27 11:59
凌心 发表于 2013-9-27 11:54
我不知道你是什么东西的采样,看数据应该是一个数代表一个点。

void ImageCapture(unsigned char * ImageData) {

    unsigned char i;
    unsigned int  temp_int;

    TSL1401_SI = 1;         /* SI  = 1 */
    SamplingDelay();
    TSL1401_CLK = 1;        /* CLK = 1 */
    SamplingDelay();
    TSL1401_SI = 0;         /* SI  = 0 */
    SamplingDelay();

    //Delay 20us for sample the first pixel
    for(i = 0; i < 20; i++) {
        Cpu_Delay1us();
    }

    //Sampling Pixel 1
    temp_int = AD_Measure12(0);
    *ImageData++ = (byte)(temp_int>>4);
    TSL1401_CLK = 0;        /* CLK = 0 */

    for(i=0; i<127; i++) {
        SamplingDelay();
        SamplingDelay();
        TSL1401_CLK = 1;    /* CLK = 1 */
        SamplingDelay();
        SamplingDelay();
        //Sampling Pixel 2~128
        temp_int = AD_Measure12(0);
        *ImageData++ = (byte)(temp_int>>4);
        TSL1401_CLK = 0;    /* CLK = 0 */
    }
    SamplingDelay();
    SamplingDelay();
    TSL1401_CLK = 1;        /* CLK = 1 */
    SamplingDelay();
    SamplingDelay();
    TSL1401_CLK = 0;        /* CLK = 0 */
}
这个就真的不懂了,能再麻烦一下你吗?这程序怎么一下开,一下关的,不懂啊,大哥


作者: 凌心    时间: 2013-9-27 12:27
917052549 发表于 2013-9-27 11:59
void ImageCapture(unsigned char * ImageData) {

    unsigned char i;

这个我就帮不了你了,分析程序要靠自己。

作者: luomusic    时间: 2013-9-27 14:36
有点像iic协议
作者: luomusic    时间: 2013-9-27 14:36
应该是SCCB协议吧
作者: 雨子    时间: 2013-9-28 08:51





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2