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

Selfrock

Members
  • Постов

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

  • Посещение

Электроника

  • Стаж в электронике
    Более 20 лет

Достижения Selfrock

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Бодрый день. Решил недавно немного поиграться с STM8 нашел буржуйское видео для начинающих и повторил код оттуда для мигания светодиодом посредством таймера, слегка адаптировав его для китайского модуля stm8s103f3, скомпилил его и залил в плату. вобщем все заработало. однако мне, как не очень большому знатоку С остались не ясны некоторые моменты кода... сам код #include "iostm8s103f3.h" #include "stdint.h" #define PIN 5 volatile uint8_t timer4 = 0; #pragma vector = TIM4_OVR_UIF_vector __interrupt void TIM4_UPD_OVF_IRQHandler(){ if(timer4 % 32 == 0){ //Замедляем Timer4 еще больше, чтобы видить мигание светодиода PB_ODR ^= (1<<PIN); //переключаем Pin B5 timer4 = 0; } timer4++; TIM4_SR &=~(1<<0); //Очищаем флаг обновления прерывания } void initGPIO(){ PB_DDR |= (1<<PIN); //Установить пин 5 как выход PB_CR1 |= (1<<PIN); //Установить пин 5 как пушпул PB_ODR |= (1<<PIN); //Установить пин 5 высокий (1) } void initTimer4(){ CLK_PCKENR1 |= (1<<4); //Разрешить тактирование переферии для Timer4 TIM4_PSCR = 0x0F; //Делитель частоты, делим на макс TIM4_IER = 1; // Разрешить обновление прерывания TIM4_CR1 |= 1; // Разрешаем таймер asm ("rim"); //Разрешаем глобальные прерывания } int main( void ) { initGPIO(); initTimer4(); while (1){ } } так вот, хотелось бы спросить более опытных камрадов, что именно делает и значит такая конструкция в условии проверки: if(timer4 % 32 == 0){ а так же не понятно, зачем двумя строками ниже переменная timer4 сбрасывается на ноль, ведь эта секция кода выполняется только если timer4 и так равна 0 или я не прав? так же, прошу пояснить как работает след конструкция TIM4_SR &=~(1<<0); понятно что & и ~ это логическое "и" и инвертирование... но как и в какой последовательности оно выполняется при таком написании?
  2. В не к доброму дню буде помянутом Чипе бип-е. Акурат в 3,5 раза дороже. Да ОБР у них интересней, но опять же на проценты а не в разы... На счет более линейной бетты, даже не знаю что это дает... разве что для усилителя без ООС лучше. Вобщем, надо будет купить парочку да сравнить в усилителе... а то вдруг оно медом намазано, а я не в курсе...
  3. разница в 25% а не в три раза... выгодней поставить два народных и получить за меньшую цену большую мощность...
  4. Пардон за глупый вопрос... Чем эти MJL3281A MJL1302A так лучше народных 2sc5200 2sa1943 ? напряжение и ток КЭ одинаковы, граничная частота та же... а стоят MJLки в три с половиной раза дороже? чем же они лучше что за них просят столько денег?
×
×
  • Создать...