wtorek, 7 listopada 2017

Magic RGB Spectrum - ukończony !


Chodzi o projekt programistyczny, pierwsza wersja została napisana.
Jest gotowy, działający kod zgodny z większością  założeń wstępnych, o których napiszę już wkrótce.

Wstępną, mało-doskonałą prezentację można zobaczyć tutaj:


Może jeszcze główny plik źródłowy main.c:


 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
 * main.c
 * 
 * Magic RGB Spectrum
 *
 */

//pliki biblioteczne
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#include "libs/SW_AVR_PERIPHS/sw_adc.h"
#include "libs/SW_GRAPHICS/sw_spectrum_lib.h"
#include "libs/SW_GRAPHICS/menu.h"


//============================== PROGRAM GŁÓWNY ===================================//
int main(void) {

 sw_encoder_init();
 sw_keyboard_init();
 set_encoder( 10 ); // Ustawiamy enkoder na wartośc zgodną z fallTimeSet

 // Rejestrujemy funkcje obsługi enkodera wraz z klawiszem
 register_enc_event_callback( plus_minus );
 register_keyboard_event_callback( switch_setting_modes );
 register_calculate_fft_event_callback( spectrum_calculate_fft );

 register_show_menu_event_callback( sw_show_menu );
 register_hide_menu_event_callback( sw_hide_menu );
 //-----------------------------------------------------------

 // Włączamy silnik timerów programowych
 softTimers_init( t2_Prsclr_8 );
 //-------------------------------------

 // Włączamy pomiary sygnału wejściowego
 adc_init( ADC5, ADC_PSCLR_32, adc_ref_11V );
 timer0_init( adc_16kHz_filter );

 // Inicjalizujemy wyświetlacz
 sw_RGB_panel_init();

 // Ustawiamy parametry wyświetlania spektrum
 spectrum_init();
 //-----------------------------------------------------------

 // Ustawiamy parametry rysowanych tekstów
 set_display_texts();

 sei();
 while(1) {
  SW_ENCODER_EVENT();
  SW_KEYBOARD_EVENT();
  SW_CALCULATE_FFT_EVENT();
  SW_SHOW_MENU_EVENT();
  SW_HIDE_MENU_EVENT();
 }
}
//============================ End main.c ============================================//



Szczegóły wkrótce.






4 komentarze:

  1. Witam
    Kiedy będą szczegóły projektu.
    Pozdrawiam

    OdpowiedzUsuń
  2. Cześć.
    Jednak ktoś to ogląda, nie spodziewałem się :)
    Niestety założenia projektu zmieniły się. Zaprezentowany powyżej efekt końcowy nie doczekał się implementacji sprzętowej, tylko w warstwie programistycznej był zakończony. Przebudowuję właśnie projekt na mikrokontroler STM32. Podobnych projektów na Arduino jest sporo w sieci, dlatego przerzuciłem się na STM32 - oczywiście też po to by czegoś nowego się nauczyć. Na dziś niestety trudno mi sprecyzować zakończenie projektu, ale skoro jest już jeden zainteresowany to powinno mnie to zdopingować.

    OdpowiedzUsuń
  3. Dzięki za odpowiedz.
    Co jakiś czas odwiedzę twoją stronę.
    Pozdrawiam

    OdpowiedzUsuń
  4. Jak masz jakieś linki do projektów to je udostępnij.

    OdpowiedzUsuń