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

Marchello

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

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

  • Посещение

Репутация

0 Обычный
  1. Видимо пока придется так и поступать (хоть осадочек остался - ну должно на мой взгляд работать, даже при очистке скопом). arm-gcc - пробовал и крайнюю сборку Klen'a и Sourcery G++ Lite Edition, тоже свежий.
  2. При скорости 114285 ошибка будет 0,8%, при 117647 - чуть больше 2%. В принципе ничего криминального.
  3. Как написал Serj78, это я долго не мог понять причину того, почему не работает как надо прерывание, в данном случае от Tim2 - UIE. Буквально несколько дней, как начал осваивать ARMы, использую - STM32, Eclipse, arm-gcc. Код ниже. Т.е. если очищать флаг запроса на прерывание перед самым выходом из него, то попадаем в прерывание второй раз. Не могу понять причин такого поведения. Может кто-нибудь проверить это? #include "stm32f10x.h" #define PortC_pin12 (*((volatile unsigned long *)0x422201B0 )) int main() { RCC->APB2ENR = RCC_APB2ENR_IOPCEN; GPIOC->CRH = GPIO_CRH_MODE12; // PC12 - 50MHz, push-pull - светодиод RCC->APB1ENR = RCC_APB1ENR_TIM2EN; TIM2->PSC = 61; // при 8мГц тактовой Tim2 переполняется примерно 2 раза в секунду TIM2->DIER = TIM_DIER_UIE; // включаем прерывание по переполнению Tim2 TIM2->CR1 = TIM_CR1_CEN; // запускаем Tim2 NVIC->ISER[0] = 1<<TIM2_IRQn; // разрешаем прерывания от Tim2 while(1); } void TIM2_IRQHandler(void) { static uint8_t state = 0; if(state == 0) { PortC_pin12 = 1; state = 1; } else { PortC_pin12 = 0; state = 0; } TIM2->SR = 0; // Очищаем все запросы от Tim2 //NVIC->ICPR[0] &= ~(1<<TIM2_IRQn); // сначала заработало с этой строчкой // потом просто заставил выполнить МК еще 1(или не 1?) такт - эффект аналогичный TIM2->SR = 0; // если закомментировать, то попадаем в прерывание по 2 раза }
  4. Причем тут токи через транзистор?
  5. Поставьте в затвор резистор на 10-15 Ом.
  6. avreal

    Спасибо огромное! :)
  7. Даже не несколько, а всего $1000 и 1-2 экземпляра МК.
  8. Эта проблема обсуждается на AVRfreaks - http://www.avrfreaks.net/index.php?name=PN...pic&t=58624 Один человек предложил свой вариант решения проблемы - написал утилитку. Выложено тут - http://www.avrfreaks.net/index.php?name=PN...pic&t=59538 Попробовал - работает. С уважением, Марк.
×
×
  • Создать...