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:
Składnia: [ Pobierz ] [ Ukryj ]
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/