Wczoraj uruchomiłem RTC, działa ładnie, choć nie wiem dlaczego na koniec wpisu do rejestru RTC_CNT muszę dwa razy wyzerować bit RTC_CRL_CNF:)
W następnej kolejności chcę uruchomić przerwanie od RTC, no i oczywiscie nie działa, inaczej nie pisałbym tu. Jak rozumiem z dokumntacji (tej cześci którą przeczytałem) i opisu przykladów, najpierw powinny być ustawione wektory przerwań, czyli wskazane adresy pod którymi są wywoływane. Mam to w pliku startup. Z opisu w tym pliku wynika, że jeżeli umieszczę funkcję z przerwaniem np. w pliku stm32f10x_it.c dołączonym do projektu, jeżeli nazwa tej funkcji bedzie zgodna z nazwą w wektorze, jeżeli odblokuję dane przerwanie, to powinno ono być wywoływane. Czy jest coś jeszcze co muszę zrobić? W rozdziale o NVIC w R0008 nic ciekawego nie znalzlem, a przerwanie nie działa. Jest w nim dodany rozkaz zapalenia LEDa, żeby zobaczyć czy jest wywoływane - nie jest.
To fragment z funkcją przerwania zawartą w pliku stm32f10x_it.c
Tu jest funkcja inicjalizacji RTC z włączeniem przerwania RTC_SEC.
Procesor w dalszym ciągu STM32F103VCT6 taktowany 72MHz.
Dodam, że np. SysTick przerwanie działa (po usunieciu '//'), ale ten SysTick zawsze działa
W następnej kolejności chcę uruchomić przerwanie od RTC, no i oczywiscie nie działa, inaczej nie pisałbym tu. Jak rozumiem z dokumntacji (tej cześci którą przeczytałem) i opisu przykladów, najpierw powinny być ustawione wektory przerwań, czyli wskazane adresy pod którymi są wywoływane. Mam to w pliku startup. Z opisu w tym pliku wynika, że jeżeli umieszczę funkcję z przerwaniem np. w pliku stm32f10x_it.c dołączonym do projektu, jeżeli nazwa tej funkcji bedzie zgodna z nazwą w wektorze, jeżeli odblokuję dane przerwanie, to powinno ono być wywoływane. Czy jest coś jeszcze co muszę zrobić? W rozdziale o NVIC w R0008 nic ciekawego nie znalzlem, a przerwanie nie działa. Jest w nim dodany rozkaz zapalenia LEDa, żeby zobaczyć czy jest wywoływane - nie jest.
To fragment z funkcją przerwania zawartą w pliku stm32f10x_it.c
Kod: C / C++
Tu jest funkcja inicjalizacji RTC z włączeniem przerwania RTC_SEC.
Kod: C / C++
Procesor w dalszym ciągu STM32F103VCT6 taktowany 72MHz.
Dodam, że np. SysTick przerwanie działa (po usunieciu '//'), ale ten SysTick zawsze działa