Перейти к содержанию
    

Vovanchik-s

Участник
  • Постов

    10
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Vovanchik-s

  • День рождения 11.09.1981

Контакты

  • ICQ
    Array

Информация

  • Город
    Array
  1. LPC2919

    Вся проблема в том, что LPC2919 есть в двух модификациях: lpc2919fbd144 - без памяти lpc2919fbd144/01 - с памятью. И с памятью пока негде купить, хотя на сайте nxp он уже доступен.
  2. LPC2919

    Здравствуйте. Подскажите пожалуйста, возможна ли запись для LPC2919 в память программ из выполняемой программы. Мне необходимо сохранять несколько параметров и вешать для этого отдельную память данных не хотелось бы. И как это осуществить. Спасибо.
  3. На PWM прерывания нет (немного неверно сформулировал фразу). Разобрался: использовал ШИМ с ноги PA11 и в тоже время работал по DBGU (PA10). Получалось что ШИМ создавал помеху на DBGU и возникало ощущение что микроконтроллер зависает (прекращался обмен по DBGU). Сейчас сделал ШИМ на PA7 и все заработало.
  4. Использование PWM на SAM7S

    Здравствуйте. Возникла необходимость использования PWM на микроконтроллере SAM7S512. Использую следующий код для инициализации: void Init_PWM(void) { AT91F_PWMC_InterruptDisable(AT91C_BASE_PWMC, AT91C_PWMC_CHID0); AT91F_PWMC_CfgPMC (); AT91F_PWMC_StopChannel(AT91C_BASE_PWMC, AT91C_PWMC_CHID0); AT91F_PWMC_CfgChannel(AT91C_BASE_PWMC, 0, 1 | AT91C_PWMC_CPOL, 8000, 4000); AT91F_PWMC_UpdateChannel(AT91C_BASE_PWMC, AT91C_PWMC_CHID0, 0); AT91F_PWMC_StopChannel(AT91C_BASE_PWMC, AT91C_PWMC_CHID0); AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, 0, AT91C_PA11_PWM0); AT91F_PWMC_StartChannel(AT91C_BASE_PWMC, AT91C_PWMC_CHID0); } PWM запускается и работает (на осциллографе хороший меандр)... Но почему то резко падает производительность микроконтроллера (причем как при работе PWM на 100 кГц, так и на 3 кГц). Собственно вопрос и заключается в том, на сколько при использовании PWM упадет общая производительность микроконтроллера и может есть какая либо особенность его использования. Кроме PWM используются прерывания от TC1 (10 кГц), TC2 (80 кГц), DBGU, IRQ0, SPI. Спасибо.
  5. TС все заняты, а о PIT неподумал ... спасибо. :a14:
  6. Попробовал просто внести задержку (пустым циклом) после чтения RTTC_RTSR - вроде бы помогло. Спасибо. Как это вообще более правильно реализовать? У меня из за этой задержки поплыли измерения, которые сделаны по прерыванию от таймера. Этой задержкой я просто торможу таймер.
  7. Я уже привожу, просто убирал все лишнее... __irq void IRQ_DBGU(void) {char j, k, l, h; short i; long long temp; unsigned int status; long long TMP; int R; // get Usart status register and active interrupt status = AT91C_BASE_DBGU->DBGU_CSR; if (status & AT91C_US_RXBUFF) { ... ОБРАБОТКА DBGU ... memcpy(buff_rx, buff_rx_null, sizeof(buff_rx_null)); AT91C_BASE_DBGU->DBGU_RPR = (unsigned int) buff_rx; AT91C_BASE_DBGU->DBGU_RCR = 40; //* Reset the satus bit for error AT91C_BASE_DBGU->DBGU_CR = AT91C_US_RSTSTA; } if (status & AT91C_US_TIMEOUT) { AT91C_BASE_DBGU->DBGU_CR = AT91C_US_STTTO; } //status = AT91C_RTTC_RTTINC; status = AT91C_BASE_RTTC->RTTC_RTSR; if (status != 0) { ... ОБРАБОТКА RTTC ... } AT91C_BASE_AIC->AIC_ICCR = (1 << AT91C_ID_SYS); AT91C_BASE_AIC->AIC_EOICR = 0; }
  8. AIC_EIOCR сбрасывается в конце обработчика один раз. Нужно писать для каждой ветки свой?
  9. Нет у меня работает по уровню: AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL. DBGU работает в режиме PDC: ... AT91C_BASE_AIC->AIC_SVR[AT91C_ID_SYS] = (unsigned int) IRQ_DBGU; AT91C_BASE_AIC->AIC_SMR[AT91C_ID_SYS] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | 6; AT91F_PDC_Open(AT91C_BASE_PDC_DBGU); AT91C_BASE_DBGU->DBGU_RPR = (unsigned int) buff_rx; AT91C_BASE_DBGU->DBGU_RCR = 40; ...
  10. проблемы с SAM7S256

    Здравствуйте! Столкнулся при работе с SAM7S256 с непонятной проблемой. Использую прерывание SYS для обработки прерываний от DBGU и RTTC. В начале все работает, происходит несколько прерываний DBGU и RTTC, а затем прерывания перестают возникать вообще, хотя галочки pending и mask все время установлены. Сама прога в этот момент вертится в бесконечном цикле в main. Что это может быть и как это можно исправить? Спасибо.
×
×
  • Создать...