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

int0x25

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

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

  • Посещение

Весь контент int0x25


  1. aaarrr, спасибо большое, помогли. Действительно, в документации все написано, просто надо просто внимательнее читать.
  2. Здравствуйте, запускаю таймер, который должен каждые 10 мс запускать АЦП и потом должно быть обработано прерывание конца преобразования. Но у меня почему то только один раз выполняется код в обработчике прерывания АЦП, а после этого даже не обрабатываются прерывания TC2. Наверное, я что то не дописал в обработчике прерывания АЦП, подскажите пожалуйста, что именно. __irq void tc2_int (void) { AT91S_TC* pTC2 = AT91C_BASE_TC2; AT91F_ADC_StartConversion(AT91C_BASE_ADC); *AT91C_AIC_EOICR = pTC2->TC_SR; } __irq void ADC_inter(void) { GetData(); AT91F_AIC_ClearIt(AT91C_BASE_AIC, AT91C_ID_ADC); } void Init_ADC() { AT91S_AIC* pAIC = AT91C_BASE_AIC; AT91F_ADC_SoftReset(AT91C_BASE_ADC); AT91F_ADC_CfgPMC(); AT91F_ADC_CfgModeReg(AT91C_BASE_ADC,ADC_Mode); AT91F_ADC_EnableChannel(AT91C_BASE_ADC, AT91C_ADC_CH4); pAIC->AIC_SMR[AT91C_ID_ADC] = AT91C_AIC_PRIOR_LOWEST | AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL; pAIC->AIC_SVR[AT91C_ID_ADC] = (unsigned long) ADC_inter; AT91F_ADC_EnableIt(AT91C_BASE_ADC,AT91C_ADC_CH4); AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_ADC); pAIC->AIC_IECR = (1 << AT91C_ID_ADC); }
  3. Не работает vTaskResume()

    Здравствуйте. Что то у меня не работает эта функция или я что то не допонимаю. Есть 2 задачи extern xTaskHandle xHandle; portTASK_FUNCTION(vServerTask,pvParameters) { (void) pvParameters; while(true) { ... vTaskResume(&xHandle); } } portTASK_FUNCTION(vTempTask,pvParameters) { (void) pvParameters; while(true) { ... //тут все выполняется vTaskSuspend(NULL); ...//не попадает } } подскажите, где я не правильно делаю.
  4. Нашел от чего это происходит в этой функции. void TCPLowLevelInit(void) { // Keil: Timer 0 is used for TCP retransmission control *AT91C_PITC_PIMR = AT91C_PITC_PITIEN | AT91C_PITC_PITEN | 784741; // 262mSec; *(AT91C_AIC_SVR + AT91C_ID_SYS) = (unsigned int)TCPClockHandler; *(AT91C_AIC_SMR + AT91C_ID_SYS) = AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE; *AT91C_AIC_IECR = (1 << AT91C_ID_SYS); } Оказывается во FreeRTOS уже используется этот таймер для переключения задач и я просто затирал старый обработчик прерываний. А вот теперь я хочу код из своего обработчика сунуть в тот, который затирал, но он находится в ассемблерном файле. Отсюда вопрос - можно ли в ассемблерный файл экспортировать глобальные переменные из си файла?
  5. Здравствуйте. МК = AT91SAM7x256. Столкнулся с проблемой - для FreeRTOS создал задачу с использованием uip (из стандартновго примера "EasyWEB" в папке Keil). Эта задача работает нормально, а вот другие перестали вообще работать(видимо на них не переключается система). От чего это может быть и как бороться?
  6. rezident, большое спасибо за идею,действительно так проще делать.
  7. aaarrr, спасибо. Только я все все равно не понял как сделать :(. Расскажу что надо сделать, а то может неправильно делаю. Надо считать данные с ацп (n измерений) и передать по сети сами данные + время (дата) запуска ацп с точностью до милисекунд + времена начала каждого измерения в мс с начала работы ацп. С помощью стандартной си'шной функции я получаю и передаю по сети время с точность до секунд на МК. А вот как потом это число записать в PIT да еще, чтобы он отсчитывал с точностью до милисекунд я не пойму. Не мог бы кто нибудь показать мне как примерно можно такое реализовать(запись , чтение из PIT).
  8. Черт, как все сложно, он же даже расшифровывается как таймер реального времени :( А что же тогда можно использовать?
  9. Эм, а если нет внешних часов? Нельзя ли, например, при включении МК по сети ему передавать текущее дату и время, а он потом сам продолжит его отсчитывать? (Сори,если это по дурацки звучит, но в МК я только разбираюсь) Черт туплю, aaarrr внешние часы - это имеется ввиду как раз то что я описал?
  10. Извиняюсь я значит не правильно выразился. Мне нужно реальное время, т.е. чтобы при включении МК на нем было бы реальное время (а не шел отсчет от 0) и тикало пока его не выключат.
  11. Подскажите, пожалуйста, как установить реальное время в AT91SAM7x. Я вот не знаю, можно ли его устанавливать прямо на МК типа вызова функции time_t mytime = time(0); или его надо передавать откуда то при каждом включении МК?
  12. Всем спасибо за помощь. На другом компе все заработало и класс компилится и шаблоны, похоже это что то с кейлом у меня дома, попробую переставить его. Печально, конечно, что подсветка синтаксиса никакая и нет автодополнения :(
  13. Спасибо, конечно, но с с++ у меня все в порядке и я это понимаю =) Дело в другом - когда я пишу class Myclass{}; в хэдере, то не подсвечивается слово class и при компиляции выдает ошибку. А если я это в с++ файл переношу , т.е. и объявление и определение сразу делаю, то все отлично компилируется.
  14. Здравствуйте. Что то я совсем запутался с кейлом :( Создаю h файл и пытаюсь написать класс, компилятор ругается "identifier "class" is undefined" . Переношу этот же объявление класса в с++ файл, там все нормально компилится. Подскажите , пожалуйста, что надо настроить, чтобы объявить класс в хэдере.
  15. Эхх, это же элементарно, черт надо же было так ступить :( Надо делать перерывы в длительной работе, а то вот такие вопросы рождаются. Спасибо большое.
  16. Здравствуйте. Помогите, пожалуйста, а то никак не могу справиться с этой проблемой. Хочу передавать по сети серверу некоторые сообщения, чтобы в зависимости от них сервер отправлял разные данные. Данные то от клиента я отправляю, только никак не пойму как их потом распотрошить на сервере. Делаю так struct netbuf *pxRxBuffer; pxRxBuffer = netconn_recv( pxNetCon ); if (pxRxBuffer->ptr->payload != "test") {} но такое условие не проходит, наверное я что то делаю не так, подскажите пожалуйста как работать с netbuf.
  17. IEEE C37.111-1999

    Здравствуйте. Нет ли у кого данного стандарта? А то не могу никак найты ссылку на бесплатный pdf. А покупать за 50$ для учебных целей как то совсем несерьезно.
  18. Ох как не просто переходить с высокоуровневых шаблонов и классов с++ на чистый си. Пойду изучать даташит и работу gpio. Спасибо за помощь.
  19. aaarrr, огромное спасибо,с этим разобрался, все работает. У меня созрели еще парочку вопросов 1) Если мы каждый раз при прошивке через sam-prog стираем полностью flash память - это разве не укорачивает ее жизнь быстрее, по сравнению с прошивкой через ulink, когда стирается не вся память? 2)Нет ли у кого нибудь исходников опроса АЦП по параллельному интерфейсу , желательно для платы at91sam7x-ek. По-идее, это ведь популярная задача, но что то я не могу найти таких исходников :(
  20. aaarrr, спасибо большое за ответ. Еще парочку глупых вопросов=) 1)Если в uVision можно программировать чем угодно, то как это сделать с помощью sam-prog? А то я что то не вижу выходного *.bin файла и в настройках тоже не вижу как включить его генерацию.Что же тогда надо в микроконтроллер заливать? 2)Нужно ли в моей задаче(опрос АЦП и передача информации по сети) использовать какую либо rtos типа freeRTOS, т.е. облегчит ли мне жизнь разбиение моей задачи на 2 отдельных процесса?
  21. Выбор IDE, uvision или Eclipse?

    Здравствуйте, заранее хочется извиниться за глупые вопросы, но в программировании железа я 0 (тяготяю больше к софту и с++). Но у мне необходиом сделать курсовую работу, в которой будет опрос АЦП с помощью AT91SAM7x и потом по отправка по сети и обработка на верхнем уровне. Я скачал даташит по микроконтроллеру и немного почитал форум и возникло нескольуо вопросов: 1) Какую среду выбрать, если нет никакого программатори и залить соответственно смогу только с помощью sam-ba. uvision мне понравился тем, что внутри него есть симулятор самого мк и симулятор АЦП, но там можно запрограммировать только с помощью ulink(так ли это?). В eclipse все собралось и залил тествовый пример в микроконтроллер, но там нет никакой симуляции и непонятно как отлаживать. 2) Если заливать через sam-ba то надо каждый раз делать reset c помощью джампера? 3) От меня требуют использование с++ (в виде классов), а вообще так пишут для железа, а то все те примеры, что идут вместе с компиляторами и платой написаны на голом си?
×
×
  • Создать...