Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 7 cze 2025, o 14:42


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 15 sie 2017, o 09:14 
    Offline
    Nowy

    Dołączył(a): 11 sie 2017
    Posty: 1
    Pomógł: 0

    Witam drogich użytkowników, mam problem z poprawnym zaprogramowaniem trybu oszczędzania energii w STM32. Znalazłem przykładowy kod który mógłbym wykorzystać aczkolwiek
    nie wiem jak poprawnie zdefiniować funkcję NVIC wywołaną na samym początku listingu. Gdyby ktoś miał chwilę i mógł mi z tym pomóc byłbym bardzo wdzięczny. :) Dopiero zaczynam
    przygodę z STM32 i nie bardzo mogę się w tym wszystkim połapać. Z góry dzięki za pomoc.
    Cytuj:

    int main(void)
    {
    EXTI_InitTypeDef EXTI_InitStructure;

    DBGMCU_Config(DBGMCU_SLEEP, ENABLE);

    RCC_Conf();
    NVIC_Conf(); // ?????????????
    GPIO_Conf();

    // Linia 17 jako zdarzenie (RTC)
    EXTI_StructInit(&EXTI_InitStructure);
    EXTI_InitStructure.EXTI_Line = EXTI_Line17;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Event;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);

    PWR_BackupAccessCmd(ENABLE); // Zezwolenie na dostep do Backup domain

    BKP_DeInit();

    RCC_LSEConfig(RCC_LSE_ON); // Wlacz LSE

    while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET); // Czekaj, az wystartuje

    RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); // LSE zrodlem sygn. zeg. dla RTC

    RCC_RTCCLKCmd(ENABLE); // Wlacz taktowanie RTC

    RTC_WaitForSynchro(); // Czekaj na synchronizacje RTC z APB
    RTC_WaitForLastTask();

    RTC_SetPrescaler(32768); // Zliczane beda impulsy co 1s
    RTC_WaitForLastTask();

    while (1)
    {
    NVIC_SystemLPConfig(NVIC_LP_SEVONPEND, ENABLE);
    // Najwyzszy priorytet
    NVIC_SETPRIMASK();

    RTC_SetAlarm(RTC_GetCounter()+ 30); // Wybudzenie co 30s
    RTC_WaitForLastTask();

    GPIO_ResetBits(GPIOC, GPIO_Pin_6);

    __WFE(); // Wait for event

    GPIO_SetBits(GPIOC, GPIO_Pin_6);
    delay_ms(2000);
    }
    }





    Ewentualnie może ktoś doradzi mi jak prościej zaprogramować uC by przechodził w tryb uśpienia i wybudzał się co określony czas by wykonać pomiary?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 sie 2017, o 12:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 sie 2014
    Posty: 31
    Pomógł: 9

    Jeżeli korzystasz z Cube to w czasie kiedy ściąga sobie wszystkie dane z sieci po wybraniu procecesora zapisuje potrzebną dokumentację wraz z przykładami w pliku: u mnie dla STM32L053 C:Użytkownicy/User/STM32Cube/Repository/STM32Cube_FW_L0V1.8.0(to u Ciebie będzie pewnie inne)/Projects/STM32L053R8-Nucleo/Examples I tam jest wszystko co jest Ci potrzebne by ruszyć z STM32



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO