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

evsx1

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

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

  • Посещение

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


  1. STM32F105 GPIO interrupts

    esaulenka и Сергей Борщ Большое спасибо за помощь, с прерываниями все было в порядке, а вот с логикой обработки прерывания было не в порядке. В прерывании я устанавливал флаг, только вот этот флаг мог быть обработан не моментально, а по истечению 3-4мс, таким образом я читал не те данные,которые вызвали прерывание
  2. STM32F105 GPIO interrupts

    Нет ,проверил данный факт первым делом, использованы прерывания 3 таймеров. Один для счета 60 мс для включения приема или передачи, другой для счета таймаут по приему, третий выдает время когда ведомый должен послать. У ведомых еще задействована линия PA1 (EXTI_Line1)
  3. STM32F105 GPIO interrupts

    Работаю с приемопередатчиком DW1000 и МК STM32F105RC. Приемопередатчик настроен таким образом ,что на отправку и прием сообщений он генерирует прерывание,которое поступает на PB5 микроконтроллера. Работаем по TDMA схеме, проблема в том,что МК видит прерывания каждые 60мс (прерывания по отправке синхросообщения), но при этом пропускает прерывания,которые генерирует микросхема на приеме. (к линии прерывания подключаемся логическим анализатором и видим,что эти прерывания идут четко после каждого синхросообщения). Однако в получение сообщения мы попадаем каждые 1-2с, а по идее должны попадать в промежутке из 60мс. Обработчик прерывания составляет из себя чтение регистров приемопередатчика с последующим определением,что вызвало прерывание. Таким образом на одном и том же пине вижу стабильные прерывания по отправке, но прерывания,которые генерирует приемопередатчик по приему,пропускаются. В коде есть только один запрет на прием прерываний,в момент записи и чтения регистров по SPI. Однако это происходит только в момент обработки прерывания, SPI работает на скорости 8МГц, если верить системному таймеру общее время работы прерывания меньше 1мс. Те это не должно влиять на прерывание,которое идет через несколько мс. На всякий случай выкладываю код инициализации GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; // Enable GPIO used as DECA IRQ for interrupt GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //IRQ pin should be Pull Down to prevent unnecessary EXT IRQ while DW1000 goes to sleep mode GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(DECAIRQ_GPIO, &GPIO_InitStructure); /* Connect EXTI Line to GPIO Pin */ GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource5); /* Configure EXTI line */ EXTI_InitStructure.EXTI_Line = EXTI_Line5; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //MPW3 IRQ polarity is high by default EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); /* Set NVIC Grouping to 16 groups of interrupt without sub-grouping */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); /* Enable and set EXTI Interrupt to the lowest priority */ NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);
  4. В целом всем спасибо.!Особенно Arlleex ! Название темы можно изменить на "Решено"
  5. Вот этого и не могу понять, он подключен к APB1. Частота на ней равна половине системной частоты, те 36МГц, APB1=1, те на таймер должно приходить 36МГц, но я считаю, что там 72МГц, но такого не должно быть.
  6. да,доступна, просто она больше не обновляется. Вся проблема была,что таймер в дебаг режиме продолжал работать. Строки ,которые завставляют его останавливаться в дебаг режиме были выше, с ним в дебаг режиме он не считал и я увидел сброс бита в прерывании У меня возникло непонимание с тактирование таймера. RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); скакой частотой он будет тактироваться? как я вижу из картинки, почти все таймера висят на APB1, те ее скорость 36МГц, чтобы получить искомые 100us мне надо в прескалер положить 3600-1, но с таким значение выходит в 2 раза быстрее. ТЕ, записав 7200-1 я получаю желаемое. Но не могу понять почему так.
  7. Каким образом он сам сотрется ? просто из-за того что прерывание выполненыно? нет.
  8. Большое спасибо! Использование данных функций SPL которые конфигурируют этот регистр,помогло увидеть сброс прерывания у этого таймера DBGMCU_Config(DBGMCU_TIM3_STOP,ENABLE); DBGMCU_Config(DBGMCU_TIM4_STOP,ENABLE); DBGMCU_Config(DBGMCU_TIM6_STOP,ENABLE);
  9. как написано в начале поста,я пробовал и с ней. не помогло. Видимо, CooCox устарел уже,не вижу я таких регистров в описании МК. но за подсказку спасибо. В настройках таймера явных ошибок нет?
  10. Настройки по-умолчанию в CooCox, вроде бы тактирование продолжается(значения в Value меняются при пошаговой отладке, хотя в принципе так и должно быть), но сказать точно не могу. Можете подсказать где это проверить?
  11. Добрый день, возникла проблема с обработкой прерывания по переполнению от таймера общего назначения TIM6 в микроконтроллере STM32F105RC. Среда разработки CooCox. TIM_ClearITPendingBit(TIM6, TIM_IT_Update) не сбрасывает флаг прерывания и я соответсвенно попдаю в него снова, но уже не по времени,которое мне необходимо,если верить системному таймеру. Данную строку двигал в разные часть обработчика прерывания, но в показанном мной коде,она должна стоять в этом месте,как я выяснил из литературы(проверяем, что прерывание от таймера и затем чистим(насколько я выяснил это надо сделать как можно быстрее)). Так же меня скорость тиков таймера с требуемых 100us до 1ms, так как думал,что не успеваю очистить и попадаю снова в прерывание из-за скорости. Результат один и тот же. По идее мне нужны настройки тиков таймера каждые 0,1ms и дальше период прерываний задается конфигурированием, пока работаю с конфигурацией,что прерывание должно быть каждые 96ms, те период 960 тиков или 96ms. Вопрос , что я сделал неправильно,что таймер так себя ведет? void TIM6_IRQHandler(void) // обработчик прерывания { time = portGetTickCount(); // тут получаем время от системного таймера //TIM6 ->SR &= ~TIM_SR_UIF; //TIM_ClearITPendingBit(TIM6, TIM_IT_Update); if (TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM6, TIM_IT_Update); // ДАННАЯ СТРОКА судя по отладчику не сбрасывает флаг прерывания if (sync_timer_callbacks[0]) { if ( sync_timer_callbacks[0]() ) { } } } } //настройка таймера void sync_timer_now_setup(uint16 alarm, uint16 ticks, uint16 period) { uint16 now; NVIC_InitTypeDef NVIC_InitStructure; sync_timer_periods[alarm]=period; now = portGetTickCnt(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); switch (alarm) { case 0: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); //beacon timer setup TIM_TimeBaseStructInit(&base_timer0); base_timer0.TIM_Prescaler =(3600)-1; //one tick every 100us base_timer0.TIM_Period = ticks; TIM_TimeBaseInit(TIM6, &base_timer0); TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE); TIM_Cmd(TIM6, ENABLE); NVIC_InitStructure_timer0.NVIC_IRQChannel = TIM6_IRQn; NVIC_InitStructure_timer0.NVIC_IRQChannelPreemptionPriority = 13; NVIC_InitStructure_timer0.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure_timer0.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure_timer0); break; case 1: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); // timeout timer TIM_TimeBaseStructInit(&base_timer1); base_timer1.TIM_Prescaler = 3600-1; base_timer1.TIM_Period = ticks; TIM_TimeBaseInit(TIM3, &base_timer1); TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); TIM_Cmd(TIM3, ENABLE); NVIC_InitStructure_timer1.NVIC_IRQChannel = TIM3_IRQn; NVIC_InitStructure_timer1.NVIC_IRQChannelPreemptionPriority = 14; NVIC_InitStructure_timer1.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure_timer1.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure_timer1); break; case 2: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //timer for sending in nodes TIM_TimeBaseStructInit(&base_timer2); base_timer2.TIM_Prescaler = 3600-1; base_timer2.TIM_Period = ticks; TIM_TimeBaseInit(TIM4, &base_timer2); TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE); TIM_Cmd(TIM4, ENABLE); NVIC_InitStructure_timer2.NVIC_IRQChannel = TIM4_IRQn; NVIC_InitStructure_timer2.NVIC_IRQChannelPreemptionPriority = 12; NVIC_InitStructure_timer2.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure_timer2.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure_timer2); break; default: break; } } //настройка системной частоты, выбор источников тактирования int RCC_Configuration(void) { ErrorStatus HSEStartUpStatus; RCC_ClocksTypeDef RCC_ClockFreq; /* RCC system reset(for debug purpose) */ RCC_DeInit(); /* Enable HSE */ RCC_HSEConfig(RCC_HSE_ON); /* Wait till HSE is ready */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus != ERROR) { /* Enable Prefetch Buffer */ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /****************************************************************/ /* * HCLK=72MHz, PCLK2=72MHz, PCLK1=36MHz */ /****************************************************************/ /* Flash 2 wait state */ FLASH_SetLatency(FLASH_Latency_2); /* HCLK = SYSCLK */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /* PCLK2 = HCLK */ RCC_PCLK2Config(RCC_HCLK_Div1); /* PCLK1 = HCLK/2 */ RCC_PCLK1Config(RCC_HCLK_Div2); /* ADCCLK = PCLK2/4 */ RCC_ADCCLKConfig(RCC_PCLK2_Div6); /* Configure PLLs *********************************************************/ /* PLL2 configuration: PLL2CLK = (HSE / 4) * 8 = 24 MHz */ RCC_PREDIV2Config(RCC_PREDIV2_Div4); RCC_PLL2Config(RCC_PLL2Mul_8); /* Enable PLL2 */ RCC_PLL2Cmd(ENABLE); /* Wait till PLL2 is ready */ while (RCC_GetFlagStatus(RCC_FLAG_PLL2RDY) == RESET){} /* PLL1 configuration: PLLCLK = (PLL2 / 3) * 9 = 72 MHz */ RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2, RCC_PREDIV1_Div3); RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_9); /* Enable PLL */ RCC_PLLCmd(ENABLE); /* Wait till PLL is ready */ while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){} /* Select PLL as system clock source */ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* Wait till PLL is used as system clock source */ while (RCC_GetSYSCLKSource() != 0x08){} } RCC_GetClocksFreq(&RCC_ClockFreq); /* Enable SPI1 clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE); /* Enable SPI2 clock */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE); /* Enable GPIOs clocks */ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE); return 0; } //запуск системного таймера int SysTick_Configuration(void) { if (SysTick_Config(SystemCoreClock / CLOCKS_PER_SEC)) { /* Capture error */ while (1); } NVIC_SetPriority (SysTick_IRQn, 0); return 0; }
  12. Вам спасибо за посильную помощь. Заметка про флюс так же была очень полезной.
  13. Спасибо. To Aner. Да,он подключен на GPIO0 и GPIO1 выводами 4 и 6. Я настраивал саму SI4432 как цифровой вход(с подтягом), на эти ноги. Сами выводы GPIO0,GPIO1 выведены так же на плате модуля, их я подключил к ножкам контроллера и управлял в обход микросхемы(только отслеживал уровень). А в теле передачи/приема, просто выставлял уровни на ножках контроллера.
  14. Спасибо,Aner. Проблему приема решил. Вся загвоздка была в том,что антенным переключателем я управлял с микроконтроллера напрямую(с порта контроллера). Если на передачу это не оказывало влияния(я так полагаю,так как мощность измеренная SDRом не менялась),то на приеме выходила данная проблема. Передал управление антенным переключателем микросхеме SI4432, сразу же вырос RSSI до 220 единиц в зоне 3 метра и заработал прием сквозь стены.
  15. GSM полностью отключен от питания.Можете поделиться своими значениями указанных регистров,с которыми у вас пробивает 30метров + 4 стены? REGISTER_IF_FILTER_BANDWIDTH 0x1C REGISTER_AFC_LOOP_GEARSHIFT 0x1D REGISTER_AFC_TIMING_CONTROL 0x1E REGISTER_CLK_RCV_OVERSAMP_RATIO 0x20 REGISTER_CLOCK_RECOVERY_OFFSET1 0x21 REGISTER_CLOCK_RECOVERY_OFFSET2 0x22 REGISTER_CLOCK_RECOVERY_OFFSET3 0x23 REGISTER_CLOCK_RECOV_TIME_GAIN1 0x24 REGISTER_CLOCK_RECOV_TIME_GAIN0 0x25 REGISTER_TX_DATA_RATE1 0x6E REGISTER_TX_DATA_RATE0 0x6F REGISTER_MOD_MODE_CONTROL1 0x70 REGISTER_MOD_MODE_CONTROL2 0x71 REGISTER_FREQ_DEVIATION 0x72 0x69 0x2A Сам я использовал собранную конфигурацию по даташиту самостоятельно(в начале топика) и из студии write(0x1C, 0x1D); // IF filter bandwidth 1d write(0x1D, 0x40); // AFC Loop write(REGISTER_AFC_TIMING_CONTROL,0x0A); write(0x1F,0x03); //write(0x1E, 0x0A); // AFC timing write(0x20, 0xA1); // clock recovery write(0x21, 0x20); // clock recovery write(0x22, 0x4E); // clock recovery write(0x23, 0xA5); // clock recovery write(0x24, 0x00); // clock recovery timing write(0x25, 0x13); // clock recovery timing write(0x2A, 0x1E); write(REGISTER_TX_POWER, 0x1F); write(REGISTER_MOD_MODE_CONTROL1,0x2C); rite(0x69,60); write(REGISTER_FREQUENCY_BAND_SELECT, 0x53); // frequency set to 434MHz write(REGISTER_NOMINAL_CARRIER_FREQ1, 0x64); // frequency set to 434MHz write(REGISTER_NOMINAL_CARRIER_FREQ2, 0x00); // frequency set to 434Mhz С обоими так и не взлетаю
  16. Спасибо,качественно отмыв от флюса, в пределах 2 метров мы получили RSSI в районе 150. Заметил интересную особенность,если передатчик выключить,то приемник все равно показывает уровень RSSI в районе 0x28. Откуда он берет это значение? Кроме того иногда проходят пакеты,которые заполняют FIFO одним и тем же значением 0xFE(0xBE).(при этом они проходят проверку статуса IntStatus2&&0x80,IntStatus2&&0x40,IntStatus1&&0x02). Тем не менее передатчик из соседней комнаты до сих пор не видим.
  17. 1) 215МГЦ Вот это на полосе 215МГц,передатчик мой, если отрубить то сигнал пропадает 2)Модуль куплен с aliexpress как готовое устройство Живой модуль вид сверху Живой модуль вид снизу Монтаж на плате Плата под модулем 3)... 4) При выборе ООК нет связи,уже при положении модулей,на одном столе(РССИ на приемнике 0С) Эфир снятый СДР
  18. Понимаю,что причина у меня, сколько не смотрел ни у кого подобных проблем не было,вот и хочется понять для начала,проблема софтварная(настройка SI4432) или железная. Смотрел потребляемый ток в момент передачи- примерно, 110мА вместе с работой контроллера,те передатчик похоже работает на максимуме. Вопрос надо ли делать специфические настройки приемника(девиацию уменьшил). Или все же проблема в корявой антенне
  19. мощность максимальна. Расстояние было примерно 4-5м
  20. С китайской антенной в зоне видимости RSSI -106, с коаксиальной 21,с проводком 9. Из соседнего помещения РССИ не читается: 0х00
  21. в зоне прямой видимости бьет как минимум 7 метров,дальше не разносил.
  22. Здравствуйте,связь в зоне видимости между приемником и передатчиком присутствует(оба SI4432 B1). Есть проблема,как принять пакет с передатчика через две стены(цокольное помещение,2 стены общей тощиной ~45см,кирпич, расстояние между приемником и передатчиком ~10м). Настроено все на работу с 434МГц,передача на максимальной мощности(по измерению тока,очень похоже на заявленные 90мА), модуляция GFSK, 4,8kbps. На стороне приемника в спектре видно следующее(СДР 433 пакет -снято сдр приемником). Используется коаксиальная антенна.(Коаксиальная антенна). В приемнике при чтении статуса видно, что буфер приема не заполняется. Код инициализации чипа: write(0x06, 0x00); // Disable all interrupts write(0x07, 0x01); // Set READY mode write(0x09, 0x7F); // Cap = 12.5pF write(0x0A, 0x05); // Clk output is 2MHz write(0x0B, 0xF4); // GPIO0 is for TX data output write(0x0C, 0xEF); // GPIO1 is RX data input write(0x0D, 0x00); // GPIO2 for MCLK output write(0x0E, 0x00); // GPIO port use default value write(0x0F, 0x70); // NO ADC used write(0x10, 0x00); // no ADC used write(0x12, 0x00); // No temp sensor used write(0x13, 0x00); // no temp sensor used write(0x70, 0x20); // No manchester code, no data whiting, data rate < 30Kbps write(0x1C, 0x1D); // IF filter bandwidth write(0x1D, 0x40); // AFC Loop //write(0x1E, 0x0A); // AFC timing write(0x20, 0xA1); // clock recovery write(0x21, 0x20); // clock recovery write(0x22, 0x4E); // clock recovery write(0x23, 0xA5); // clock recovery write(0x24, 0x00); // clock recovery timing write(0x25, 0x0A); // clock recovery timing write(0x2C, 0x00); write(0x2D, 0x00); write(0x2E, 0x00); write(0x6E, 0x27); // TX data rate 1 4,8kbit write(0x6F, 0x52); // TX data rate 0 write(0x30, 0x88); // Data access control 8c write(0x32, 0xFF); // Header control write(0x33, 0x42); // Header 3, 2, 1, 0 used for head length, fixed packet length, synchronize word length 3, 2, write(0x34, 64); // 64 nibble = 32 byte preamble write(0x35, 0x20); // 0x35 need to detect 20bit preamble write(0x36, 0x2D); // synchronize word write(0x37, 0xD4); write(0x38, 0x00); write(0x39, 0x00); write(0x3A, '*'); // set tx header 3 write(0x3B, 'E'); // set tx header 2 write(0x3C, 'W'); // set tx header 1 write(0x3D, 'S'); // set tx header 0 write(0x3E, PKTSIZE); // set packet length to PKTSIZE bytes (max size: 255 bytes) write(0x3F, '*'); // set rx header write(0x40, 'E'); write(0x41, 'W'); write(0x42, 'S'); write(0x43, 0x00); // check all bits write(0x44, 0x00); // Check all bits write(0x45, 0xFF); // check all bits write(0x46, 0xFF); // Check all bits write(0x56, 0x01); write(REGISTER_TX_POWER, 0x0F); // Tx power to max write(0x79, 0x00); // no frequency hopping write(0x7A, 0x00); // no frequency hopping write(0x71, 0x22); // GFSK, fd[8]=0, no invert for TX/RX data, FIFO mode, txclk-->gpio write(0x72, 0x48); // Frequency deviation setting to 45K=72*625 write(0x73, 0x00); // No frequency offset write(0x74, 0x00); // No frequency offset write(REGISTER_FREQUENCY_BAND_SELECT, 0x53); // frequency set to 434MHz write(REGISTER_NOMINAL_CARRIER_FREQ1, 0x64); // frequency set to 434MHz write(REGISTER_NOMINAL_CARRIER_FREQ2, 0x00); // frequency set to 434Mhz write(0x5A, 0x7F); write(0x59, 0x40); write(0x58, 0x80); write(REGISTER_AGC_OVERRIDE1 ,15); write(0x6A, 0x0B); write(0x68, 0x04); write(0x1F, 0x03); status = read(0x02);
  23. Si1000/IAR8051/EzMacPro 3.0.1

    Разобрался сам,проблема была во времени старта кварца. Дефолтное значение 1,5мс, мой стартует за 2мс
  24. Si1000/IAR8051/EzMacPro 3.0.1

    Добрый день Занимаюсь контроллером Si1000 в связке с IAR+C-Spy. Пробую запустить стек от производителя,однако столкнулся с проблемой, при инициализации работы стека вываливаюсь в ошибку fEZMacPRO_StateErrorEntered=1 и при выполнении функции EZMacPRO_Init() останавливаюсь на while (EZMacProReg.name.MSR != EZMAC_PRO_IDLE). Вывод NIRQ заведен Р0.1, на P1.7 и P2.0 светодиоды. тактовую частоту завожу: OSCICN |= 0x80; //24,5MHz CLKSEL = 0x00; FLSCL = 0x40; FLWR = 0x01; /* Wait for clock to get ready. */ while(!(CLKSEL & 0x80)); Настройка портов следующая SBIT (SDN, SFR_P2, 5); SBIT(NSS, SFR_P1, 3); ////////// XBR1 |= 0x40; // Enable SPI1 (3 wire mode) P1MDOUT |= 0x95; // SCK1, MOSI1, & NSS1,push-pull SFRPAGE = CONFIG_PAGE; P1DRV = 0x15; // MOSI1, SCK1, NSS1, high-current mode SFRPAGE = LEGACY_PAGE; SDN = 0; XBR2 |= 0x40; //SDN = 0; NSS = 1; P2MDOUT |= 0x41; // SDN P2.6 push-pull P2DRV |= 0x40; // SDN P2.6 high-current mode IT01CF = 0x01; // INT0 mapped to P0.1 active low TCON &= ~0x03; main.c и настройки стека. На шаге инициализации стека виснем в ошибке #define SYSCLK_HZ (24500000) #define SYSCLK_KHZ (SYSCLK_HZ/1000) #define FREQUENCY_BAND_868 #define TRANSCEIVER_OPERATION #define FOUR_CHANNEL_IS_USED #define EXTENDED_PACKET_FORMAT #define PACKET_FORWARDING_SUPPORTED PORT_Init (); SystemClkInit(); Timer3Init(); LED1= false; LED2= false; StateMachine_Init(); while (1){ switch(DEMO_SR) { case /*DEMO_SR_STATE_BOOT_BIT*/0x10: /* Initialise board. */ /* Enable global interrupts. */ ENABLE_GLOBAL_INTERRUPTS(); /* Initialise EZMacPRO. */ EZMacPRO_Init(); /* Wake up from Sleep.*/ EZMacPRO_Wake_Up();
×
×
  • Создать...