#include <iostream>
#include <unistd.h>
#include "rio/rio.hxx"
const char *szDevice = "/dev/irio/0";
const char *szConfig = "../../../quartus/fab/basic/fab_regs.rbf";
int main(int argc, char **argv) {
int chOpt;
while ((chOpt=getopt(argc, argv, "?")) != EOF) {
if (chOpt == '?' ) {
std::cerr << "usage: " << argv[0] << " [config .rbf file]" << std::endl;
return 2;
}
}
if (argc == 2) szConfig=argv[1];
if (!ri) {
std::cout << ri << std::endl;
return 2;
}
std::cerr << "config failed " << *prp << std::endl;
return 2;
}
std::cout <<
"FPGA now configured: " << prp->
sgConfig() << std::endl;
int iPeriod, iDutyCycle;
const double crTimeUnit=(17.066666E-06);
double rPeriod = iPeriod * crTimeUnit;
double rDutyCycle = iDutyCycle * crTimeUnit;
while(std::cin.good()) {
std::cout << "timer period=" << rPeriod << ", duty cycle=" << rDutyCycle << std::endl;
std::cout << "enter new timer period (0 to quit)\n>" << std::flush;
std::cin >> rPeriod ;
if (rPeriod == 0) break;
std::cout << "enter new duty cycle(0 to quit)\n>" << std::flush;
std::cin >> rDutyCycle ;
if (rDutyCycle == 0) break;
if (!prp->isGood()) {
std::cerr << "communication error" << std::endl;
return 2;
}
}
return 0;
}