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

Простейшее прерывание ATMEL

On 1/11/2024 at 12:34 PM, Adam said:

Как организовать простейшее прерывание для ATI91SAM9260 ?

Linux ?

Baremetal ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я конечно не уверен 🙃, но предпола, что надо прочитать мануал на микроконтроллер. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/11/2024 at 1:50 PM, EdgeAligned said:

Я конечно не уверен 🙃, но предпола, что надо прочитать мануал на микроконтроллер. 

Еще на ядро.

В IAR были (есть) примеры различные. Сам ATMEL раньше выкладывал примеры. Надо на сайте Microchip поискать примеры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, dimka76 said:

Linux ?

Baremetal ?

Проект на IAR 6.30 под Windows

Изменено пользователем Adam

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#include <AT91SAM9260.h>

void timer_init() {
    // Расчет значения для регистра TC_RC (сравнения)
    uint32_t ms = 1; // 1 миллисекунда
    uint32_t rc_value = (4000000 / 2) / 1000 * ms; // Половина частоты кварца, чтобы получить частоту таймера

    // Установка режима работы таймера
    AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS; // Отключение тактирования
    AT91C_BASE_TC0->TC_CMR = AT91C_TC_WAVE | AT91C_TC_CPCTRG; // Режим WAVE и сравнение
    AT91C_BASE_TC0->TC_RC = rc_value; // Установка значения сравнения
    AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN | AT91C_TC_SWTRG; // Включение тактирования и запуск таймера
}

// Обработчик прерывания от таймера
void TC0_Handler() {
    if ((AT91C_BASE_TC0->TC_SR & AT91C_TC_CPCS) != 0) {
        // Обработка прерывания
        // Ваш код обработки прерывания здесь
    }
}

посмотрите. может что то используете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/11/2024 at 2:42 PM, Adam said:

Проект на IAR 6.30 под Windows

Так в IAR есть примеры.

On 1/11/2024 at 3:00 PM, firstvald said:

посмотрите. может что то используете.

Настройки AIC не хватает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понимаю, у этого МК ядро ARM? Тогда еще нужно провести стандартную для ARM операцию включения вектора прерывания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Adam сказал:

Проект на IAR 6.30 под Windows

Вам явно в "Предлагаю работу".  :sarcastic:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там и синхронизацию для используемых узлов и сбросить их . т е начать и кончить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...