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



Teraz jest 25 lip 2026, o 03:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 5 maja 2013, o 13:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Witam, odpaliłem przykład z tej lekcji na modułach HM-T, HM-R w domyślnej konfiguracji, czyli oba układy na 8MHz i wszystko chodzi jak należy. Docelowo chciałbym zejść z taktowaniem jak najniżej, wykonałem pierwszą próbę i nadajnik ustawiłem na 1Mhz (przestawiłem fusebity, w eclips - clean+rebuild) no i klops, układy przestały się dogadywać.

W programie nadajnika nie dopatrzyłem się jakichś wielkich zależności od taktowania, nie wykorzystuje on timerów jedynie to:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


No ale jest to makro, które i tak wykona robotę za nas. Nie wiem gdzie te timingi mogą mi się rozjeżdżać. Kodu nie wrzucam, bo to jest żywcem cała lekcja L06

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2013, o 13:46 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27463
Lokalizacja: Szczecin
Pomógł: 1045

popatrz pan tu masz preskaler:

Kod:
TCCR1B = (1<<CS11);   // ustawienie preskalera dla Timer1 = 8


i tu masz preskaler:

Cytuj:
#define _micro_s(num) (((num)*((F_CPU/1000UL)/8))/1000)


i jak myślisz - co z tym można zrobić hmmm ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2013, o 14:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

No faktycznie, racja. Ale właściwie to teraz zobaczyłem, że nadajnik nie zależy nawet w jakikolwiek sposób od

Kod:
#define _micro_s(num) (((num)*((F_CPU/1000UL)/8))/1000)


Jedynie timingi opierają się o _delay_us(); a to powinno chodzić tak samo na różnym taktowaniu. Odbiornik chodzi sobie dalej na 8MHz, a przestawiłem jedynie taktowanie nadajnika, więc czasy generowania połowy bitów pozostają te same

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2013, o 14:17 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27463
Lokalizacja: Szczecin
Pomógł: 1045

no to tu mi się pomysły na razie kończą a że sam nie testowałem tego na 1MHz i nie mam teraz możliwości przetestować - to ciężko mi coś tak podpowiedzieć. :(

ale rozumiem że jeśli dajesz nadajnik na 8 MHz to wszystko śmiga ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2013, o 14:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

mirekk36 napisał(a):
ale rozumiem że jeśli dajesz nadajnik na 8 MHz to wszystko śmiga ?

Dokładnie tak

------------------------ [ Dodano po: 8 minutach ]

Wygląda na to, problem leży w funkcji _delay_us(). Zrobiłem prosty test i zarzuciłem na oscyloskop

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Dla 8Mhz czas trwania impulsu to ok 1,3us czyli ok.
Natomiast dla 1Mhz ta sama funcja to ponad 8us, czyli już nie ok :?

No dobra, chciałbym uzyskiwać niskie opóźnienia a zjeżdżam z częstotliwością taktowania, a tak po prostu się nie da ;]

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Dla 1Mhz czas trwania poziomu to 5us. A więc mała przerwa na odpoczynek i na spokojnie wracam do tematu.

_________________
eDiyCraft.blogspot.com



Ostatnio edytowano 5 maja 2013, o 14:56 przez savian86, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2013, o 14:50 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27463
Lokalizacja: Szczecin
Pomógł: 1045

no to tak na wszelki, zapytam - chociaż podejrzewam że masz to dobrze poustawiane ale ...

1. czy na pewno dobrze ustawiłeś fusebity ?
2. czy na pewno zmieniasz ustawienia taktowania w Eclipse ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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