Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
2Гудвин и кто работал с изделиями Руднева-Шиляева. Ткните носом пожалуйста, где я не понимаю.... Плата ЛА-2,5PCI
Отправлено
Атмег 14 декабря 2009, г. 15:08
Все, что хочу для начала - запустить одиночное преобразование:
// gdwBaseAddr - base address, from PCI base address range 0
outb(gdwBaseAddr+LA_CHAN_EN, ADC_CH_ALL); // включил все каналы
outb(gdwBaseAddr+LA_FIFO_CLR, 0x01); // сбросил fifo
outb(gdwBaseAddr+LA_SR, 0x01); // сбросил флаги
x = inw(gdwBaseAddr+LA_SR) & 0x1FF;
printf("SR = %d\n", x); // проверил сбросились ли? 0, сбросились
outw(gdwBaseAddr+LA_CTRL1, 0); // пишу 0 в Управляющий регистр 1
x = inw(gdwBaseAddr+LA_CTRL1) & 0x1FF;
printf("CTRL1 = %d\n", x); // читаю - все биты в 1. должны быть 0!!
outb(gdwBaseAddr+LA_SW_TRIG, 0x01); // запускаю преобразование
while(1) {
while(!(inw(gdwBaseAddr+LA_SR) & ADC_RDY)) {} // жду бита окончания преобразования - в статусном регистре по прежнему 0
for(idx=0;idx<8;idx++) {
x = inw(gdwBaseAddr+LA_FIFO_DATA) >> 4;
printf("channel %d = %d\n", idx, x);
}
printf("Done\n");
getch();
outb(gdwBaseAddr+LA_SW_TRIG, 0x01);
}
Составить ответ | Вернуться на конференцию.
Ответы