Esempio n. 1
0
void ChannelSelect::display()
{
    if(_channels.contains(_full))
        emit channelSelect(_full);
    else
        _lcd->display(_old);

    _number[0] = 0;
    _number[1] = 0;
    _number[2] = 0;
    _digit = 1;
    _timer->stop();
}
void init8209(void)
{
    unsigned char i = 0;
    unsigned char j = 0;
 
    printf ( "\r\nRN8209 init..." );
    
    while(initTable[i].Bwidth)
    {
    	//有时写第一通道有问题
		spiWrite(0, initTable[0].add,*(initTable[0].value), initTable[0].Bwidth);
        for(j=0;j<9;j++)
        {
            spiWrite(j, initTable[i].add,*(initTable[i].value+j), initTable[i].Bwidth);
            //data = *(WORD *)&SysParam[SP_RNHFCONST+j*2];
            //spiWrite(j, initTable[i].add,data, initTable[i].Bwidth);
        }
        
        i++;
    }
    for(j=0;j<9;j++)
    {
        while(SSIBusy(SSI0_BASE))
        {
            ;
        }
    
        channelSelect(j);
        SSIDataPut(SSI0_BASE, 0xEA);
        SSIDataPut(SSI0_BASE, 0xE5);
    
        SSIDataPut(SSI0_BASE, 0xEA);
        SSIDataPut(SSI0_BASE, 0x5A);//选择A通道电流用着电能计算
        //SSIDataPut(SSI0_BASE, 0xA5);//选择B通道的电流用着电能计算
    
        SSIDataPut(SSI0_BASE, 0xEA);
        SSIDataPut(SSI0_BASE, 0xDC);
    }
    
}