ATNEL tech-forum https://forum.atnel.pl/ |
|
Zmiana F_CPU nic nie daje? https://forum.atnel.pl/topic2919.html |
Strona 1 z 1 |
Autor: | merazmus [ 21 kwi 2013, o 20:13 ] |
Tytuł: | Zmiana F_CPU nic nie daje? |
Witam. Napisałem taki prosty program: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Dioda podłączona do pinu PB1 powinna zmieniać stan co 1 sekundę przy taktowaniu 1MHz. I tak się dzieje. Problem pojawia się gdy ustawiam taktowanie na 2MHz i F_CPU na 2000000. Według mnie dioda dalej powinna zmieniać stan co 1 sekundę, a w rzeczywistości dzieje się to dwa razy częściej. Jeśli dobrze rozumiem to funkcja _delay_ms() korzysta z funkcji _delay_cycles(), która z kolei używa F_CPU, więc zmiana F_CPU powinna mieć jakikolwiek wpływ na przebieg programu, a tak się nie dzieje. Gdzie jest błąd? |
Autor: | Domanoid [ 21 kwi 2013, o 20:16 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Jeśli piszesz w Eclipse to F_CPU nie zmienia się w kodzie tylko w opcjach projektu. (A F_CPU nie powinno być w kodzie). |
Autor: | Klucha [ 21 kwi 2013, o 20:17 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Kolego piszesz w Eclipse czy AVR Studio? Mirek powtarzał kilka dziesiąt razy, że częstotliwość taktowania procka ustawia się w properties projektu, a nie F_CPU i wtedy nie ma problemu. |
Autor: | merazmus [ 21 kwi 2013, o 20:29 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Faktycznie, działa. Dzięki. Jakoś nie miałem nigdy szczęścia się natknąć na tę wskazówkę |
Autor: | Target [ 4 sty 2016, o 15:03 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Mam ten sam problem co merazmus. Program z początku postu ten sam, tylko bez F_CPU (zmieniam to we właściwościach projektu) i używam Eclipsa Luna. Atmega 32. USBasp. Gdy mkAVR Calculator ustawiam fusebity na E1 / D9 (1Mhz, wew.) i Eclipsem MCU Clock Frequency na 1Mhz dioda miga 1 Hz. Zgodnie z oczekiwaniem, gdy NIE zmieniam MCU CF w Eclipsie, a zmieniam częstotliwość procesora przez mkAVR, dioda miga szybciej. Wew. 8 MHz - 8x szybciej lub zew. kwarc 16 MHz - 16x szybciej. Do tej pory wszystko działa. Problem się zaczyna, gdy zmieniam częstotliwość procesora przez mkAVR i zmieniam częstotliwość MCU CF w Eclipsie. Gdy procesor jest na 8 MHz wew. i MCU CF zmieniam na 8 MHz, dioda nadal miga 8 razy szybciej - tutaj już powinna migać z f = 1 Hz. Zmieniam na zew. 16 MHz i MCU CF we właściwościach na 16 MHz. Dioda miga 16x szybciej, zamiast z częstotliwością 1 Hz. Wygląda to tak, że niezależnie od ustawień w Eclipsie, programy działają poprawnie tylko, gdy procesor ma ustawiony 1 MHz wew. Tak. Robię Clean Project po każdej zmianie częstotliwości. Sprawdzałem w mkAVR, czy aby na pewno ustawiony jest zegar taki jaki trzeba. Mam ustawione zapisz przed build (który ustawiony jest na release). Próbowałem również zmienić częstotliwość "programu" przez Eclipse Gadget nadal nic. |
Autor: | rskup [ 4 sty 2016, o 15:06 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Podaj jakie masz wartości dla ustawienia fuse bitów dla 8MHz. - - Pozdrawiam, Robert ------------------------ [ Dodano po: kilkunastu sekundach ] Oczywiście sczytaj je obowiązkowo z procesora. |
Autor: | Target [ 4 sty 2016, o 15:51 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Tak jak jest w mkAVRze 1 MHz - E1 D9 8 MHz - E4 D9 16 MHz zew. - FF D9 JTAG - Wyłączony. |
Autor: | rskup [ 4 sty 2016, o 16:37 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Fuse bity masz dobrze ustawiane. Więc zostaje tylko diagnoza: "cuda, panie, cuda". Ale że okres Świąt się skończył, to może jednak coś nie tak jest z tym Clean projektu? Czy ma pewno jak wybierasz z menu tę opcję, to masz na formatce zaznaczony właściwy projekt? Czy sprawdzałeś czy problem masz tak samo jak założysz nowy projekt i od początku dasz mu właściwe taktowanie 8 / 16 MHz? Jak także założenie nowego projektu nie pomoże, proponuję abyś przesiadł się na najnowszego Eclipse Marsa z Atmel toolchainem [url](http://mirekk36.blogspot.com/2015/07/ec ... ogram.html[/url]). Możesz też podesłać spakowany projekt obowiązkowo wraz z plikami wynikowymi skompilowanymi dla 8MHz (hex-em oraz lss) by można było coś więcej sprawdzić. -- Pozdrawiam, Robert |
Autor: | Target [ 4 sty 2016, o 19:25 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Mam tylko jeden projekt, więc to na tym robię Clean Project. Dodatkowo klikam na projekt ppm -> clean. Zakładałem na testy nowe projekty, ale problem pozostaje. Zobaczę z nowym Eclipsem i dam znać. |
Autor: | boryshoroneskul [ 2 lut 2020, o 12:53 ] |
Tytuł: | Re: Zmiana F_CPU nic nie daje? |
Dziękuję, "clean project" po zmianie częstotliwości - to mi było potrzebne. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |