/*******************************************************************************
  Function:  ACCEL_RESULT ACCELInitialize(ACCEL_INIT *initialization)
  *****************************************************************************/
ACCEL_RESULT ACCELInitialize(ACCEL_INIT *initialization, uint8_t accl_range)
{
    PLIB_I2C_BaudRateSet(ACCEL_BMA250_I2C_MODULE, initialization->sourceClock, initialization->dataRate);
    PLIB_I2C_Enable(ACCEL_BMA250_I2C_MODULE);

#ifndef ACCEL_USE_EXTERNAL_INTERUPT_HANDLER
#ifndef ACCEL_USE_POLLING
    SYS_INT_VectorPrioritySet(ACCEL_BMA250_I2C_VECTOR,INT_PRIORITY_LEVEL_2);
#endif
#endif

    if(ReadChipID() == ACCEL_INVALID)
        return ACCEL_INVALID;

    SetRangeAndBandwidth(accl_range);

    ReadChipVersion();

    SetThershold();

    SetFIFO();

    accelXYZData.acc_x_lsb.new_data_x = 0;
    accelXYZData.acc_y_lsb.new_data_y = 0;
    accelXYZData.acc_z_lsb.new_data_z = 0;

    return ACCEL_VALID;
}
Exemplo n.º 2
0
/*
**  Dialog to set 16650, 16654, and 16750 FIFO modes
*/
MRESULT EXPENTRY fnwpHdwFIFOsetupDlg(HWND hwnd,USHORT msg,MPARAM mp1,MPARAM mp2)
  {
  static DCB stComDCB;
  static bAllowClick;
  static COMCTL *pstComCtl;
  static FIFOINF *pstFIFOinfo;
  FIFODEF stFIFOcontrol;

  switch (msg)
    {
    case WM_INITDLG:
//      CenterDlgBox(hwnd);
      bAllowClick = FALSE;
//      WinSetFocus(HWND_DESKTOP,hwnd);
      pstComCtl = PVOIDFROMMP(mp2);
      pstFIFOinfo = pstComCtl->pVoidPtrOne;
      if (GetDCB(pstComCtl->pstIOctl,pstComCtl->hCom,&stComDCB))
        return(FALSE);
      if (pstComCtl->pszPortName != NULL)
        WinSetWindowText(hwnd,pstComCtl->pszPortName);
      FillHdwFIFOsetupDlg(hwnd,stComDCB.Flags3,pstFIFOinfo);
      WinPostMsg(hwnd,UM_INITLS,(MPARAM)0L,(MPARAM)0L);
      break;
    case UM_INITLS:
      bAllowClick = TRUE;
      break;
    case WM_CONTROL:
      switch (SHORT2FROMMP(mp1))
        {
        case BN_CLICKED:
          if (bAllowClick)
            if (!TCHdwFIFOsetupDlg(hwnd,SHORT1FROMMP(mp1),pstFIFOinfo))
              return(FALSE);
          break;
        default:
          break;
        }
      break;
    case WM_COMMAND:
      switch(SHORT1FROMMP(mp1))
        {
        case DID_OK:
          UnloadHdwFIFOsetupDlg(hwnd,&stComDCB,pstFIFOinfo);
          stFIFOcontrol.wFIFOflags = pstFIFOinfo->wFIFOflags;
          stFIFOcontrol.wFIFOflags |= FIFO_FLG_NO_DCB_UPDATE;
          stFIFOcontrol.wTxFIFOload = pstFIFOinfo->wTxFIFOload;
          SetFIFO(pstComCtl->pstIOctl,pstComCtl->hCom,&stFIFOcontrol);
          SendDCB(pstComCtl->pstIOctl,pstComCtl->hCom,&stComDCB);
          WinDismissDlg(hwnd,TRUE);
          break;
        case DID_CANCEL:
          WinDismissDlg(hwnd,FALSE);
          break;
        case DID_HELP:
          if (pstFIFOinfo->wFIFOflags & FIFO_FLG_TYPE_16750)
            pstComCtl->usHelpId = HLPP_16750_FIFO_DLG;
          else
            if (pstFIFOinfo->wFIFOflags & FIFO_FLG_TYPE_16650)
              pstComCtl->usHelpId = HLPP_16650_FIFO_DLG;
            else
              if (pstFIFOinfo->wFIFOflags & FIFO_FLG_TYPE_16654)
                pstComCtl->usHelpId = HLPP_16654_FIFO_DLG;
              else
                pstComCtl->usHelpId = HLPP_16550_FIFO_DLG;
          DisplayHelpPanel(pstComCtl);
          break;
        default:
          return WinDefDlgProc(hwnd,msg,mp1,mp2);
        }
      break;
    default:
      return(WinDefDlgProc(hwnd,msg,mp1,mp2));
    }
  return(FALSE);
  }
Exemplo n.º 3
0
/*
**  Dialog to set handshaking modes
*/
MRESULT EXPENTRY fnwpHandshakeDlg(HWND hwnd,USHORT msg,MPARAM mp1,MPARAM mp2)
  {
  static DCB stComDCB;
  static bAllowClick;
  static COMCTL *pstComCtl;
  static FIFOINF stFIFOinfo;
  FIFODEF stFIFOcontrol;

  switch (msg)
    {
    case WM_INITDLG:
//      CenterDlgBox(hwnd);
//      WinSetFocus(HWND_DESKTOP,hwnd);
      bAllowClick = FALSE;
      pstComCtl = PVOIDFROMMP(mp2);
      if (GetDCB(pstComCtl->pstIOctl,pstComCtl->hCom,&stComDCB))
        return(FALSE);
      if (GetFIFOinfo(pstComCtl->pstIOctl,pstComCtl->hCom,&stFIFOinfo) != NO_ERROR)
        {
        stFIFOinfo.wFIFOsize = 16;
        stFIFOinfo.wTxFIFOload = 16;
        stFIFOinfo.wFIFOflags = 0;
        }
      if (pstComCtl->pszPortName != NULL)
        WinSetWindowText(hwnd,pstComCtl->pszPortName);
      WinPostMsg(hwnd,UM_INITLS,(MPARAM)0L,(MPARAM)0L);
      break;
    case UM_INITLS:
      FillHandshakeDlg(hwnd,&stComDCB,&stFIFOinfo);
      bAllowClick = TRUE;
      break;
    case WM_CONTROL:
      if (SHORT2FROMMP(mp1) == BN_CLICKED)
        {
        if (bAllowClick)
          if (!TCHandshakeDlg(hwnd,SHORT1FROMMP(mp1),&stComDCB,&stFIFOinfo))
            return(FALSE);
        }
      break;
    case WM_COMMAND:
      switch(SHORT1FROMMP(mp1))
        {
        case DID_OK:
          UnloadHandshakeDlg(hwnd,&stComDCB,&stFIFOinfo);
          stFIFOcontrol.wFIFOflags = stFIFOinfo.wFIFOflags;
          stFIFOcontrol.wFIFOflags |= FIFO_FLG_NO_DCB_UPDATE;
          stFIFOcontrol.wTxFIFOload = stFIFOinfo.wTxFIFOload;
          SetFIFO(pstComCtl->pstIOctl,pstComCtl->hCom,&stFIFOcontrol);
          SendDCB(pstComCtl->pstIOctl,pstComCtl->hCom,&stComDCB);
          WinDismissDlg(hwnd,TRUE);
          break;
        case DID_CANCEL:
          WinDismissDlg(hwnd,FALSE);
          break;
        case DID_HELP:
          DisplayHelpPanel(pstComCtl);
          break;
        default:
          return WinDefDlgProc(hwnd,msg,mp1,mp2);
        }
      break;
    default:
      return(WinDefDlgProc(hwnd,msg,mp1,mp2));
    }
  return(FALSE);
  }