Jump to content

    

SAS-1983

Свой
  • Content Count

    39
  • Joined

  • Last visited

Community Reputation

0 Обычный

About SAS-1983

  • Rank
    Участник
  1. Тогда где хранить Буферы данных?
  2. пишу на IAR-е. Буферы(массивы) будут все время заполняться и будут довольно громоздкими, поэтому, по-моему, написав const, от проблемы не уйдешь :)
  3. Добрый день. Киньте кто-нить ссылку или пример на то, как хранить переменные(в моем случае буферы) во Флеш. Пишу для AT91SAM7SE512. Заранее спасибо
  4. В каком регистре мне посмотреть разрешенли передатчик и приемник или не разрешен. Разрешаю и/или запрещаю в регистре US_CR, но не знаю где посмотреть записались ли параметры или нет.
  5. Точно, забыл что есть такой регистр. Спасибо.
  6. Наплевать-то это понятно. Но у меня стоит задача в том, чтьо бы после того как обработчик прерывания зашел в функцию, мне нужно понять из какого канала считывать данные.
  7. Всем доброго времени суток. У меня проблема с определанием источника прерывания в AT91SAM7SE512. Дело в том, что яинициализирую АЦП и устанавливаю, что прерывание будет происходить только после окончания преобразования на одном из каналов. Но когда я смотрю регистр ADC_SR, то он мне все время показывает число 0x000E0000. В чем может быть проблема или я не туда смотрю? //------------------------------------------------------------------------------ /// Инициализация АЦП //------------------------------------------------------------------------------ void ADC0_Init(void) { // SHTIM = 3, STARTUP = 7, PRESCAL = 9, SLEEP = 0, LOWRES = 0, TRGSEL = 0, TRGEN = 0 AT91C_BASE_ADC->ADC_MR = ((SHTIM << 24) | (STARTUP << 16) | (PRESCAL << 8) | (SLEEP << 5) | (LOWRES <<4) | (TRGSEL << 1) | (TRGEN )); AT91C_BASE_PIOA->PIO_PER = (0x01 << 17) | (0x01 << 18) | (0x01 << 19); // Разрешает PIO управлять соответствующим выводом(отключает переферийное управление выводом) AT91C_BASE_PIOA->PIO_ODR = (0x01 << 17) | (0x01 << 18) | (0x01 << 19); // Отключаем выход на линии ввода/вывода AT91C_BASE_PIOA->PIO_IFER = (0x01 << 17) | (0x01 << 18) | (0x01 << 19); // Разрешаем входной фильтр помех на линии ввода/вывода AT91C_BASE_ADC->ADC_IER = (0x01 << 0) | (0x01 << 1) | (0x01 << 2); // Разрешить прерывание по окончании преобразования 0,1,2 || Разрешаем соответствующее прерывание AT91C_BASE_ADC->ADC_IDR = (0x01 << 19) | (0x01 << 18) | (0x01 << 17) | (0x01 << 16); AT91C_BASE_ADC->ADC_CHER = (0x01 << 0) | (0x01 << 1) | (0x01 << 2); // Разрешаем канал 0 и 1 и 2 AIC_ConfigureIT(AT91C_ID_ADC, 0, ISR_ADC0); // Конфигурирует прерывание, связанное с данным источником, используя указанный режим и обработчика прерываний. AIC_EnableIT(AT91C_ID_ADC); // Допускает прерываниям, исходящим из данного (уникального) источника. } //------------------------------------------------------------------------------ /// Обработчик прерывания ADC //------------------------------------------------------------------------------ static void ISR_ADC0(void) { unsigned short data_ADC0_0 = 0x00; unsigned short data_ADC0_1 = 0x00; unsigned short data_ADC0_2 = 0x00; if(AT91C_BASE_ADC->ADC_SR & 0x01) // окончание преобразования канала 0 { data_ADC0_0 = AT91C_BASE_ADC->ADC_CDR0; } if(AT91C_BASE_ADC->ADC_SR & 0x02) // окончание преобразования канала 1 { data_ADC0_1 = AT91C_BASE_ADC->ADC_CDR1; } if(AT91C_BASE_ADC->ADC_SR & 0x04) // окончание преобразования канала 2 { data_ADC0_2 = AT91C_BASE_ADC->ADC_CDR2; } } Разобрался с этой проблемой. Теперь возникла другая: у меня все время прерывание генерится по завершению преобразования нулевого канала. Это так и должно быть и как мне сделать, что бы срабатывало прерывание и по окончании преобразовании в других каналах?
  8. Тема закрыта, разобрался
  9. Добрый день Всем. Возникла ситуация вот какого характера. Есть связка AT91SAM7SE512 - PC(LabView) через USB. Заливаю в контроллер программу, ее пример я скачал на сайте Атмела, плата видит соединение как COM-порт. Дальше я передаю байт в МК - принимается нормально. Проблема в том, что когда я передаю этот же байт назад в PC(LabView), то LabView этот байт не может принять. Подскажите в Чем может быть проблема? main.zip
  10. Добрый день Всем. У меня вопрос: Как мне назначить на ножки PB0...PB7 каналы АЦП AD0...AD7 на плате AT91SAM7SE512 Заранее спасибо.
  11. книги по ARM7

    Спасибо. Уже купили. Книжка стоящая.
  12. VISA USB

    Спасибо, посмотрю. Я здесь чуточку повозился с INF-файлом и такое чуство, что не все в порядке не с INF-файлом, а с файлом NiViUsbK.sys. У кого какие есть соображения на этот счет?
  13. VISA USB

    Попробовал установить - все равно выдает эту ошибку. Щас пытаюсь изменять внутренности INF файла.
  14. VISA USB

    я делаю как описании, но могу приложить полученный файл. ARM7.zip
  15. VISA USB

    Доброго времени суток всем. У меня возник вот какой вопрос: Подключаю плату at91sam7se512-ek через USB к PC. Делаю все как написано в http://zone.ni.com/devzone/cda/tut/p/id/4478#toc1 , т.е. делаю INF-файл, копирую в соответствующую папку, после выбираю этот INF-файл. Но после попытки установки - выдается ошибка (см. файл) В чем может быть проблема? Error.bmp