Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; 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);
}


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
если прибавить четыре к четырём будет:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru