Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 3 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,050
Dołączył: 20-09-2009
Post: #91
RE: Arduino
Mam już dopasowany program do mojego ala-husarka.Jestem niezmiernie zadowolony z tej syntezy (wg sp6ifn).Jedynie encoder działa co drugi dołek.Mój ma takie małe dołki wyczuwane przy kręceniu,ale nie cofa.
Czyli tak:procesor atmega168(w tej chwili wykorzystuję arduino uno),wyświetlacz 1602,moduł AD9850.Został jeszcze jeden moduł do zrobienia, powielacz x4.Tak będzie wyglądała synteza do homodyny jednopasmowej.Wyznaję zasadę jedna antena jedno pasmo.Bardzo serdecznie dziękuję Rysiowi sp6ifn i wszystkim którzy dołączyli się do wykonania tej syntezy.Oczywiście mogę w każdej chwili zmienić pasmo i przeprogramować procesor.Oczywiście czekam też na Henia.

Andrzej
08-10-2013 15:34
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6IFN Offline
Ryszard
****

Liczba postów: 456
Dołączył: 23-03-2010
Post: #92
RE: Arduino
Proszę bardzo! Przynajmniej jeden zadowolony człowiek, przeważnie to same narzekania. Dobrze było by zaprezentować swój program po zmianie. A co do "Henia" to mam takie skojarzenie że to "wcześniak" i obecnie leży jeszcze w inkubatorze. Ale to tylko skojarzenie, nic więcej.
Rysio!
08-10-2013 20:19
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9MRN Offline
MAc
*****

Liczba postów: 819
Dołączył: 29-08-2009
Post: #93
RE: Arduino
Rysio! - Heniek obciążony jest wrodzoną wadą genetyczną z której zdałem sobie sprawę dopiero po zastosowaniu go w radiu.. Uparłem się jak kretyn, że będę się posługiwał logiką VFOA-VFOB co nie ma sensu w przypadku w którym wyświetla się obie częstotliwości na LCD. Ciągnie to za sobą dosyć niewygodny sposób przechowywania w pamięci nastaw "poprzedniego" pasma. Nie potrzeba również informacji o tym które vfo jest aktualnie używane, bo główne zawsze jest głównym. No ale ja wychowałem się na radiach, które miały jeden wyświetlacz numeryczny (albo miały osobną skrzynkę "external VFO" i tam taka sygnalizacja była niezbędna.
Sensowniejsze jest traktowanie obu VFO jako Main i Sub (chociaż to na pozór to samo co Ai B) i zapamiętywanie wyłacznie nastaw dla "aktualnego" "main VFO" i dodatkowo ewentualnych par częstotliwości dla splitu. Konsekwencją będzie prawdopodobnie totalna zmiana programu - co nie oznacza oczywiście, że obecny nie jest funkcjonalny.
Dochodzi do tego parę detali - np przekazywanie parametrów przez zmienne lokalne a nie globalne - co porządkuje trochę pamięć albo posprzątanie wyświetlania przy aktualizacji wskazań s-metra - bo wyświetlacz ma problemy z nadążaniem.
Ogarnąłem się w trochę w QRLu i na dniach postaram się zacząć publikować . (wiem, już kiedyś obiecywałem - ale na robotę trudno coś poradzić)

MAc
mrn
09-10-2013 0:39
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,050
Dołączył: 20-09-2009
Post: #94
RE: Arduino
Witam Ryszardzie.Program jest Twój.Ja go tylko adoptowałem do swoich potrzeb.
było w wierszu 24 było
int_fast32_t rx=12688400; // Początkowa częstotliwość VFO
jest
int_fast32_t rx=3700000; // Początkowa częstotliwość VFO
wiersz 77i78 było
if (rx >=12800000){rx=rx2;}; // Gorna granica pracy VFO
if (rx <=12480000){rx=rx2;}; // Dolna granica pracy VFO
a jest
if (rx >=3800000){rx=rx2;}; // Gorna granica pracy VFO
if (rx <=3500000){rx=rx2;}; // Dolna granica pracy VFO
w wierszu 121-122 było
rxssb = rx - 8988400; //czestotliwosc wyswietlana pomniejszona o czestotliwosc BFO dla SSB
// rxcw = rx - 8989200; //czestotliwosc wyswietlana pomniejszona o czestotliwosc BFO dla CW
a jest
rxssb = rx - 10; //czestotliwosc wyswietlana pomniejszona o czestotliwosc BFO dla SSB
// rxcw = rx - 10; //czestotliwosc wyswietlana pomniejszona o czestotliwosc BFO dla CW. Tak wygląda pierwsze podejście. Homodyna działa.Najbardziej podoba mi się wskaźnik.To jeszcze wymaga korekty końcowej,ale już zadowolony jestem i to bardzo.Pozdrawiam


Załączone pliki
.ino  wer2.ino (Rozmiar: 9.71 KB / Pobrań: 854)

Andrzej
(Ten post był ostatnio modyfikowany: 09-10-2013 7:16 przez SP6AUO.)
09-10-2013 6:19
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6IFN Offline
Ryszard
****

Liczba postów: 456
Dołączył: 23-03-2010
Post: #95
RE: Arduino
MAc....spoko! Lepiej jest aby wcześniak dojrzał i zaczął samodzielnie oddychać w sposób skoordynowany, niż by po internecie krążył chorowity osobnik. Ja wiem że bardzo często po uruchomieniu i zmontowaniu czegoś tam łapiemy się sami za głowę......no bo przecież można było to zrobić inaczej.
Andrzeju - jak już pisałem wcześniej, spokojnie kombinuj co by było gdy bym to usunął (lub zmienił). Najszybciej uczyć się można na przykładach.
Bez wymazywania danych możesz zanegować całą linijkę programu poprzez dodanie na początku linii znaku // , lub też zamknięcie fragmentu kodu znakami /* -tu fragment kodu- */.
Zawsze możesz wtedy wrócić do pierwowzoru bez obawy że coś stracisz. Warto sobie na wszelki wypadek pozostawić gdzieś do porównania oryginał, pogubić się jest łatwo. Też się cieszę że jesteś zadowolony, to tylko jedna z możliwych wersji programowych.
Rysio!
09-10-2013 11:32
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ5KVS Offline
Karol
*****

Liczba postów: 1,012
Dołączył: 26-09-2012
Post: #96
RE: Arduino
Witam. Nieco z innej beczki..
Czy ktoś znalazł/próbował sterować DDS'em AD przy pomocy I2C, TWI, czy innego "two wire interface" (z Atmegi, oczywiście). W implementacji jaką znalazłem w arduino (biblioteka AH_AD9850.) jest to robione "na piechotę", takoż wysyłane są słowa sterujące (przesuwanie i wysyłanie bit po bicie). A to takie nieeleganckie... Wszak mamy właśnie rózne TWI. Jeno impuls FQUP trzeba by nadać osobno.
(Ten post był ostatnio modyfikowany: 09-10-2013 12:56 przez SQ5KVS.)
09-10-2013 12:56
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6IFN Offline
Ryszard
****

Liczba postów: 456
Dołączył: 23-03-2010
Post: #97
RE: Arduino
Proszę bardzo:
Cytat:Post: #70RE: Arduino

Witam.tu jest adres http://ywd.pl/projekty/dds-ad9850-i-arduino-wysw-lcd/ .
Na tej stronie jest otwarty tekst programu.Myślę,że program Encoder_Polling.h jest coś nie tak.Wszystkie error (jest ich około20) dotyczą tego Encoder_Polling.h .
Na stronie http://ywd.pl/projekty/dds-ad9850-i-arduino-wysw-led/ jest pobranie tego programiku.Dzięki za odezwanie.

--------------------------------------------------------------------------------
Andrzej
Rysio!
09-10-2013 13:15
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ5KVS Offline
Karol
*****

Liczba postów: 1,012
Dołączył: 26-09-2012
Post: #98
RE: Arduino
Rysiu, bo nie załapałem.. Cytujesz post Andrzeja, ale nie wiem w jakim celu - jako odpowiedź na mój? Smile
09-10-2013 13:43
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6IFN Offline
Ryszard
****

Liczba postów: 456
Dołączył: 23-03-2010
Post: #99
RE: Arduino
Tak.
Wstawiony tam link jest odpowiedzią na pytanie
Cytat:Czy ktoś znalazł/próbował sterować DDS'em AD przy pomocy I2C, TWI, czy innego "two wire interface" (z Atmegi, oczywiście).
Tam jest właśnie sterowanie DDSem po I2C. Dalsze stwierdzenie
Cytat:jest to robione "na piechotę", takoż wysyłane są słowa sterujące (przesuwanie i wysyłanie bit po bicie). A to takie nieeleganckie...
Osobiście myślę że to ma "działać', a "nie wyglądać". Wszak większość z nas, w tym i ja się uczymy, nie dysponujemy wiedzą tak ogromną jak obecnie wykształcona młodzież. Osobiście jestem z siebie zadowolony że jeszcze to "łykam" i staram się coś zrozumieć, a potem to wykorzystać. Twoje więc stwierdzenie że
Cytat:to takie nieeleganckie.
jest właśnie (wybacz)....nieeleganckie. My to robimy jak umiemy, jeśli więc możesz to Nam Pomóż!
Rysio!
09-10-2013 14:32
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ5KVS Offline
Karol
*****

Liczba postów: 1,012
Dołączył: 26-09-2012
Post: #100
RE: Arduino
Ok, już rozumiem.
Mając na mysli I2C, TWI - miałem na myśli specjalizowane rozwiązania sprzętowe WBUDOWANE w owe procesory (atmega ma odpowiednik I2C który ze względów prawnych nazywa się TWI - karta katalogowa ATmega168, str. 209).

Jako nieeleganckie - miałem na myśli rozwiązania "na piechotę" czyli wysyłanie poszczególnych słów poprzez pętlę for, podczas gdy atmega może to robić sprzętowo. Owszem, mamy wtedy dowolność w wyborze pinu, ale działa to wolniej, i jest podatne na zakłócenia przetwarzania w procesorze. Dodatkowo wydłuża nam kod, a przecież pojemność pamięci w tych procesorach jest dość ograniczona (to chyba najważniejszy powód).

To, co jest użyte w bibliotece z arduina (AH_9850.h) nie jest sterowaniem I2C, ani TWI. Chyba że rozumieć to czysto semantycznie jako komunikację przy pomocy dwóch linii (a nawet wtedy nie jest bo jest jeszcze sygnał FQUP).
Odpowiadając sam sobie na pytanie, AD9850/1 nie nadaje się do sterowania po I2C, bo I2C nadaje adres, i wymaga potwierdzenia. Tak samo (raczej) TWI. Dość szybko czytając kartę atmegi, nie zauważyłem trybu aby można było to ominąć.

Natomiast prawdopodobnie da się po SPI Programming the AD9851 DDS synthesizer.

I na pewno nie miałem zamiaru insynuować komukolwiek że używanie arduino, czy bibliotek do niego jest nieeleganckie, itp. Jeśli ktoś odniósł takie wrażenie, to przepraszam - choć nie wiem na jakiej podstawie można było do tego dojść. Oceniłem metodę działania algorytmu, a nie tego kto go używa.

Natomiast nikt nikogo nie zmusza żeby nosił wodę wiadrem, gdy wymyślono pompę. Choć, zabraniać też nie zabrania. Czemu nie.

PS: Miło mi że zostałem zakwalifikowany do młodzieży. Ten termin staje się coraz bardziej szeroki, hi..
Jak zaimplementuję SPI do dds i będzie to działac, to się wiedzą podzielę, owszem.
(Ten post był ostatnio modyfikowany: 09-10-2013 15:57 przez SQ5KVS.)
09-10-2013 15:54
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości