コード例 #1
0
ファイル: sis3100_vme_calls.c プロジェクト: cjpl/midas
int vmesysreset(int p)
{
  if (s3100_control_write(p, 0x100 /*offset*/, 0x2 /*data*/) != 0x0)   return -1 ;
  usleep(500000); /* 500ms (min. 200ms) */
  if (s3100_control_write(p, 0x100 /*offset*/, 0x20000 /*data*/)  != 0x0)   return -1 ;
  return 0 ;
}
コード例 #2
0
ファイル: sis3100module.cpp プロジェクト: mojca/gecko
int Sis3100Module::setOutput2(bool enable)
{
    int ret = 0;
    if(enable) ret =  s3100_control_write(m_device,SIS3104_IO,sis3104_set_nim_out2);
    else ret =  s3100_control_write(m_device,SIS3104_IO,sis3104_clear_nim_out2);
    return ret;
}
コード例 #3
0
ファイル: sis3100module.cpp プロジェクト: mojca/gecko
int Sis3100Module::open()
{
    Sis3100UI* ui = dynamic_cast<Sis3100UI*>(getUI ());

    m_device = ::open(devicePath.toStdString().c_str(), O_RDWR, 0);
    if(m_device < 0)
    {
        ui->outputText("failed to open SIS1100/3104\n");
        return -1;
    }
    else
    {
        ui->outputText("open and init SIS1100/3104 OK\n");
        deviceOpen = true;
    }

    c_device = ::open(controlPath.toStdString().c_str(), O_RDWR, 0);
    if(c_device < 0)
    {
        ui->outputText("failed to open SIS1100/3104 control\n");
        return -1;
    }
    else
    {
        ui->outputText("opened control device for SIS1100/3104\n");

    }

    // Set disable VME IRQ
    s3100_control_write(m_device,SIS3104_IRQ,(1 << 16));

    // Read Type/Version
    uint32_t opt_vme_type_version = 0;
    s3100_control_read(m_device,0x0,&opt_vme_type_version);
    ui->outputText(tr("opt/vme type/version: 0x%1\n").arg(opt_vme_type_version,8,16));

    // Read Master status
    uint32_t opt_vme_master_status = 0;
    s3100_control_read(m_device,0x100,&opt_vme_master_status);
    ui->outputText(tr("opt/vme master status: 0x%1\n").arg(opt_vme_master_status,8,16));

    // Read interrupt status
    uint32_t opt_vme_interrupt_status = 0;
    s3100_control_read(m_device,SIS3104_IRQ,&opt_vme_interrupt_status);
    ui->outputText(tr("opt/vme interrupt status: 0x%1\n").arg(opt_vme_interrupt_status,8,16));

    // Set BERR timeout to 100 us
    //s3100_control_write(m_device,0x100,(1<<15));
    //s3100_control_write(m_device,SIS3104_VME_MASTER,vme_berr_timer);

    return 0;
}