예제 #1
0
void SetModeGpio(){    
    QlPinParameter pinLight;
    QlPinParameter pinHigh;
    s32 iret;
    pinLight.pinconfigversion = QL_PIN_VERSION;
     pinLight.pinparameterunion.gpioparameter.pinpullenable = QL_PINPULLENABLE_ENABLE;
     pinLight.pinparameterunion.gpioparameter.pindirection = QL_PINDIRECTION_OUT;
     iret=Ql_pinSubscribe(QL_PINNAME_GPIO4, QL_PINMODE_2, &pinLight);    
     //OUTD("Subscribe QL_PINNAME_GPIO4 to  gpio mode:%d\r\n",iret);
     pinHigh.pinconfigversion = QL_PIN_VERSION;
     pinHigh.pinparameterunion.gpioparameter.pinpullenable = QL_PINPULLENABLE_DISABLE;
     pinHigh.pinparameterunion.gpioparameter.pindirection = QL_PINDIRECTION_OUT;
     pinHigh.pinparameterunion.gpioparameter.pinlevel = QL_PINLEVEL_HIGH;
     //pinHigh.pinparameterunion.eintparameter.hardware_de_bounce=60;
     //pinHigh.pinparameterunion.eintparameter.software_de_bounce=500;
     iret=Ql_pinSubscribe(QL_PINNAME_KBC0, QL_PINMODE_2, &pinHigh);
     //OUTD("Subscribe QL_PINNAME_KBC0 to  gpio mode:%d\r\n",iret); 
     QlPinParameter pinLow;
     pinLow.pinconfigversion = QL_PIN_VERSION;
     pinLow.pinparameterunion.gpioparameter.pinpullenable = QL_PINPULLENABLE_ENABLE;
     pinLow.pinparameterunion.gpioparameter.pindirection = QL_PINDIRECTION_IN;
     pinLow.pinparameterunion.gpioparameter.pinlevel = QL_PINLEVEL_LOW;
     //pinLow.pinparameterunion.eintparameter.hardware_de_bounce=60;
     //pinLow.pinparameterunion.eintparameter.software_de_bounce=500;
     for (u8 i=0;i<sizeof(__pinLow);i++) {
        iret= Ql_pinSubscribe(__pinLow[i], QL_PINMODE_2, &pinLow);
       // OUTD("Subscribe pin to gpio:%d mode:%d\r\n",i,iret);
     }
     __pins=0;
     ReadStateGpio();
   // OUTD("Subscribe pin to gpio mode:%d\r\n",iret);
}
예제 #2
0
void ql_entry()
{
    bool keepGoing = TRUE;
    QlEventBuffer flSignalBuffer;
    s32 period = 10;
    char buffer[100];
    char *pData, *p;

    Ql_SetDebugMode(BASIC_MODE);   
    Ql_DebugTrace("pwm: ql_entry\r\n");
    Ql_OpenModemPort(ql_md_port1);       

    while(keepGoing)
    {    
        Ql_GetEvent(&flSignalBuffer);
        switch(flSignalBuffer.eventType)
        {
            case EVENT_UARTDATA:
            {
                if (flSignalBuffer.eventData.uartdata_evt.len>0)
                {
                    s32 pin;
                    s32 mod = 0;
                    s32 pinpullenable = 0;
                    s32 pindirection = 0;
                    s32 pinlevel = 0;
                    s32 iret;

                    pData = (char*)flSignalBuffer.eventData.uartdata_evt.data;

                    //command-->select QL_PINNAME_BUZZER pin function to mode1, it is Net light function
                    p = Ql_strstr(pData,"1");
                    if (p)
                    {
                        iret = Ql_pinSubscribe(QL_PINNAME_BUZZER, QL_PINMODE_1, NULL);    
                        Ql_sprintf(buffer, "\r\nSubscribe(%d),pin=%d,mod=%d\r\n",iret,QL_PINNAME_BUZZER,QL_PINMODE_1);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    }
                    
                    //command-->select QL_PINNAME_BUZZER pin function to mode3, it is pwm function
                    p = Ql_strstr(pData,"3");
                    if (p)
                    {
                        QlPinParameter pinparameter;
                        pinparameter.pinconfigversion = QL_PIN_VERSION;
                        pinparameter.pinparameterunion.pwmparameter.pwmsource = QL_PWMSOURCE_32K;
                        pinparameter.pinparameterunion.pwmparameter.pwmclkdiv = QL_PWMSOURCE_DIV8;
                        pinparameter.pinparameterunion.pwmparameter.lowpulesnumber = 4000;
                        pinparameter.pinparameterunion.pwmparameter.highpulesnumber = 8000;
                        iret = Ql_pinSubscribe(QL_PINNAME_BUZZER, QL_PINMODE_3, &pinparameter);    
                        Ql_sprintf(buffer, "\r\nSubscribe(%d),pin=%d,mod=%d\r\n",iret,QL_PINNAME_BUZZER,QL_PINMODE_3);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    }   
                    
                    //command-->unsubscribe
                    p = Ql_strstr(pData,"u");
                    if (p)
                    {
                        iret = Ql_pinUnSubscribe(QL_PINNAME_BUZZER);
                        Ql_sprintf(buffer, "\r\nUnSubscribe(%d),pin=%d\r\n",iret,QL_PINNAME_BUZZER);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    } 
                    
                    //command-->control start pwm
                    p = Ql_strstr(pData,"s");
                    if (p)
                    {
                        iret = Ql_pinControl(QL_PINNAME_BUZZER, QL_PINCONTROL_START);
                        Ql_sprintf(buffer, "\r\nStart(%d),pin=%d\r\n",iret,QL_PINNAME_BUZZER);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    }
                    
                    //command-->control stop pwm
                    p = Ql_strstr(pData,"t");
                    if (p)
                    {
                        iret = Ql_pinControl(QL_PINNAME_BUZZER, QL_PINCONTROL_STOP);
                        Ql_sprintf(buffer, "\r\nStop(%d),pin=%d\r\n",iret,QL_PINNAME_BUZZER);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    }  
                }
                break;            
            }
            
            default:
                break;
        }
    }
}