HomeMade

Pełna wersja: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
No tak, trochę się w obliczaniu pomyliłem. Ale aż 90 bajtów trochę szkoda. Wystarczy 6 brakujących bajtów dodac., A nie jeden, jak sugerowałem.
dodawalem po kolei i stopniowo pasek znikał a przy 90 znikł całkiem
Zwróćcie panowie uwagę na organizację pamięci tego kontrolera tutaj.
Nie da się tego wyliczyć stosując uproszczenie x*y.

Wydaje mi się że bufor ekranu powinien mieć taką wielkość: liczba_całkowita(65/8+1) *102 czyli 918 bajtów.

Wartości Max_x=102, max_y=65.

Z poprzednich wyliczeń Pawła wychodzi 828 bajtów więc jak widać o 90 za mało.
Sławku, zgadza się.
Dopiero teraz na spokojnie spojrzalem do noty.
"Pamiętajcie elektroniki młode, czytajcie zawsze karty katalogowe" Smile
Jak tu jest zrealizowana obsluga przyciskow? Bo losowo wciska sie vfo a/b band i step.
Dodaj zewnętrzne rezystory PullUp do tych przycisków, jak masz taki efekt. 4.7K wystarczy.
Zwarcie pinu do masy traktowane jest jako wciśnięcie.
Co sądzicie o takiej płytce do tej syntezy? W załączniku szczegóły.
Pomyśl o otworach montażowych do płyty głównej lub czołowych i przeanalizuj popularne obudowy (zwłaszcza może te metalowe) w kontekście tego gdzie mają mocowania i jakie. Ja popełniłem kiedyś błąd i okazało się że śruby mocujące wyświetlacz, płytkę do płyty głównej wypadają w miejscu gdzie obudowa ma słupki.. Trzeba było coś upiłować, i tak obudowa się spina na trzy śruby a nie cztery... Smile I tak się cieszę że się zmieściło, bywają gorsze pomyłki Smile
Ta syntezę będę dawać do trx qrp do obudowy po Radmorze 3011. Temu enkoder tak nisko bo wyżej obok jest potencjometr od głośności i głośnik.




---------------------



Da się w tym kodzie dołożyc krok by po megahercach zmieniac czestotliwość? Kombinuje od kilku godzin i nici z tego, dopisalem linijke do kodu i dodałem podkreslenie, a po nacisnieciu przycisku step nie przechodzi na megaherce.
Jak dopisze do procedury startowej że ma zaczynać od megaherców to działa ale dopóki nie zmienię kroku strojenia.
Pozmieniałem niektóre rzeczy na LCD bo mam go od Noki 3410 a on ma większa rozdzielczośc, smetr poszedł troche niżej, potem przesunołem RITa pod częstotliwość i zwiększyłem zakres częstotliwości az do 2m.
İmage
Kod:
//obsługa klawisza zmiany kroku
    if(step_button_pressed == true){      //jeśli klawisz jest wcisnięty
      switch(step_value){                 //za pomocą instrukcji swich zmieniamy krok
      case 1000000:                       // krok 1mHz
        step_value = 100000;
        break;
      case 100000:                        //jeśli krok jest 100kHz ustaw 10kHz
        step_value = 10000;
        break;
      case 10000:                         //jeśli krok jest 10kHz ustaw 1kHz
        step_value = 1000;
        break;
      case 1000:                          //jeśli krok jest 1kHz ustaw 50Hz
        step_value = 50;
        break;
      case 50:                            //jeśli krok jest 50Hz ustaw 100kHz
        step_value = 100000;
      break;
      }
     show_step();                         //pokazuję zmianę kroku na lcd
     delay(200);                          //zwłoka po zmianie kroku 200msec    
    }

Tutaj podkreślenie:
Kod:
//funkcja do wyświetlania aktualnego kroku syntezera za pomocą podkreślenie odpowiedniej cyfry
void show_step(){      
       myGLCD.clrLine(0,31,95,31);          //czyszczę cała linię gdzie wyświetlam podkreślenie
       myGLCD.clrLine(0,32,95,32);          //czyszczę druga linię tak samo podkreśliniki są grube na dwa piksele
  switch(step_value){                       //przełącznik reaguje na bieżącą wartość kroku syntezy
   case 50:
        myGLCD.drawLine(79, 31, 95, 31);    //pokreślam 100Hz
        myGLCD.drawLine(79, 32, 95, 32);    //pokreślam 100Hz
     break;
   case 1000:
        myGLCD.drawLine(63, 31, 71, 31);    //pokreślam 1kHz
        myGLCD.drawLine(63, 32, 71, 32);    //pokreślam 1kHz      
    break;
   case 10000:
        myGLCD.drawLine(51, 31, 59, 31);    //pokreślam 10kHz
        myGLCD.drawLine(51, 32, 59, 32);    //pokreślam 10kHz      
    break;
   case 100000:
        myGLCD.drawLine(39, 31, 47, 31);    //pokreślam 100kHz
        myGLCD.drawLine(39, 32, 47, 32);    //pokreślam 100kHz      
    break;
   case 1000000:
        myGLCD.drawLine(27, 31, 35, 31);    //pokreślam 1mHz
        myGLCD.drawLine(27, 32, 35, 32);    //pokreślam 1mHz      
    break;    
  }
myGLCD.update();  //jak już ustaliliśmy co, rysujemy to wysyłamy to do LCD
}
Stron: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Przekierowanie