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



Teraz jest 29 mar 2024, o 13:34


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 2 gości


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