Skocz do zawartości

Torkness

Użytkownicy
  • Zawartość

    6
  • Rejestracja

  • Ostatnio

Posty napisane przez Torkness

  1. Witam,
    od kilku dni korzystając z różnych poradników staram się uzyskać możliwość korzystania z Raspberry Pi z dowolnego miejsca. Póki co to się nie udało a na dodatek powstało kilka wątpliwości odnośnie bezpieczeństwa.

    Niektóre poradniki z których korzystałem:

    http://malinowepi.pl/post/43316048520/raspberry-pi-i-zmienne-ip-ddns

    http://raspberrypi.stackexchange.com/questions/6757/how-to-use-ssh-out-of-home-network

    http://computers.tutsplus.com/tutorials/take-control-of-your-raspberry-pi-using-your-mac-pc-ipad-or-phone--mac-54603

    Chciałbym się upewnić czy dobrze zrozumiałem zasadę działania, a następnie postarać się naprawić to co się skaszaniło. W pierwszej kolejności zmieniłem ustawienia sieciowe mojego Pi tak aby przez wifi uzyskiwał stały adres. Zedytowałem plik:

    /etc/network/interfaces

    Następnie stworzyłem konto na noip i zainstalowałem klienta noip na Pi. Komendą ps -e widzę że klient działa. Teraz chciałbym się dowiedzieć co ten noip tak właściwie robi. Ja to rozumiem że w momencie kiedy klient się uruchamia RPi sprawdza jaki mam adres IP zewnętrzny i wysyła go na moje konto noip. Następnie będąc gdzieś na drugim końcu świata loguję się na noip i widzę jaki adres IP zewnętrzny aktualnie funkcjonuje.

    Jednak metoda ta nie działa.

    Podejrzewam że problem leży w port forwording. Próbowałem forwordować porty i teoretycznie się to udało. Mam router z UPC model Thomson twg870ug.

    Bardzo proszę o pomoc przy tym temacie 🙁

  2. Witajcie,
    mam do skomunikowania z atmegą 328p moduł GSM (Fibocom G510). Problem polega na "nieregularnych" odpowiedziach modułu. Nie mam pomysłu jak określać w którym momencie ustawiać flagę, informującą że rozkaz jest gotowy do przesłania. Opierając się na "bluebooku" kombinowałem ze zliczaniem LF i/lub CR ale czasem w komendzie zwrotnej dostaję 2, 3 a czasem nawet 4 razu te znaki. Długość komend/ilość odebranych znaków też nie wchodzi w grę bo ta waha się między 8 a 75. Zastanawiam się nad jakąś formą czasowego wyzwalania flagi (np 400ms od pierwszego znaku). Nie zależy mi na bardzo szybkiej komunikacji. Komendy będą wysyłane "w godzinach szczytu" raz na 1s. Mógłby ktoś podpowiedzieć w jaki sposób wrzucić zliczanie czasowe do przerwania (pamiętam że w blubooku było WYRAŹNIE napisane żeby nie wrzucać do przerwań _delay'ów) lub może jest jakaś inna metoda?

  3. Cześć,
    Podczas odczytywania string'a przez uart (wykorzystuje przerwania) mam spory problem z przepisaniem danych do zmiennej typu char[]. Tablica źródłowa i tablica docelowa są typu volitale. Przeszukałem kilka podobnych problemów na forum jednak nie znalazłem rozwiązania. Wolałbym nie rezygnować z oznaczenia volatile, ponieważ są to zmienne obsługiwane w przerwaniu UART. Otrzymuje 3 ostrzeżenia i 3 informacje:

    Warning   1   passing argument 1 of 'memcpy' discards 'volatile' qualifier from pointer target type [enabled by default]   70   3   
    Message   2   expected 'void *' but argument is of type 'volatile unsigned char *'      117   14   
    Warning   3   passing argument 2 of 'memcpy' discards 'volatile' qualifier from pointer target type [enabled by default]   70   3   
    Message   4   expected 'const void *' but argument is of type 'volatile unsigned char *'   117   14   
    Warning   5   passing argument 1 of 'memset' makes pointer from integer without a cast [enabled by default]   71   3   
    Message   6   expected 'void *' but argument is of type 'unsigned char'   121   14   

    (Wiersze których tyczą się ostrzeżenia/wiadomości nie pasują bo wyczyściłem z kodu poniżej nieużywane funkcje/obsługę ledów etc.)

    Kod:

    #include <avr/io.h>
    #include <stdio.h>
    #include <avr/interrupt.h>
    #include <util/atomic.h>
    #include <util/delay.h>
    #include <string.h>
    
    #define BAUD 9600
    #define MYUBRR F_CPU/16/BAUD-1
    
    volatile unsigned char data_in[44]; //ilość znaków jakie chcę maksymalnie przechowywać w tablicy
    volatile unsigned char command_in[44];
    volatile unsigned char data_count;
    volatile unsigned char command_ready;
    
    void USART_INIT(unsigned int ubrr)
    {
           UBRR0H = (unsigned char)(ubrr>>8);
           UBRR0L = (unsigned char)(ubrr);
    
           UCSR0B = (1<<RXEN0)|(1<<RXCIE0);
           UCSR0C = (3<<UCSZ00);
    }
    
    void COPY_COMMAND()
    {
           ATOMIC_BLOCK(ATOMIC_FORCEON)
           {
                   memcpy(command_in,data_in,44);
                   memset(data_in[0],0,44);
           }
    }
    
    ISR (USART_RX_vect)
    {
           data_in[data_count]=UDR0;
           if(data_in[data_count]=='\n')
           {
                   command_ready=1;
                   data_count=0;
           }else
           {
                   data_count++;
           }
    }
    
    int main(void)
    {
           USART_INIT(MYUBRR);
           DDRD = 0x00;
           sei();
    
           while(1)
           {      
                   if(command_ready==1)
                   {      
                           //w tym miejscu chce umiescic funckje rozpoznajaca rozkaz              
                           command_ready=0;
                   }
           }      
    }
    GeSHi
    

    Może ktoś ma pomysł co jest tu nie tak i mógłby mi wytłumaczyć? Ja szukam i szukam i nic nie znajduję 🙁

    Pozdrawiam

  4. Witam,
    od 2 dni męczę się niemiłosiernie ze sterowaniem wyświetlacza. Próbuję go chociażby sprawdzić czy działa. Na początek próbuję wgrać program (wraz z bibliotekami) z wątku link lecz nic kompletnie mi nie wyświetla. Zdarzało się że wyświetlało mi pełne pola (pełne prostokąty). Wie ktoś co mogłem z tym schrzanić? LCD zasilałem początkowo 5,14V a teraz zasilam 4,39V ale po zmianie nie było poprawy. Wrzucę swój projekt z LPCXpresso. Wielkie dzięki za pomoc

    [ Dodano: 09-07-2013, 13:13 ]

    dodam że przykładając diodę do wyjść E, RS, DB4-DB7 jest sygnał (miernik ma za wolne odświeżanie), choć mimo wszystko podejrzewam że mogę mieć błędy w programie

    wzorzec_lcd.rar

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.