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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 15 kwi 2025, o 16:58


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 24 lip 2013, o 13:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sie 2012
    Posty: 245
    Lokalizacja: Kielce
    Pomógł: 6

    Używam SPI (sprzętowego) w m32 ale zaszła potrzeba użycia nóżki MISO jako SS (sygnał zatrzaskujący - CS). Czy jest to możliwe?

    Oto prościutki, testowy program napisany z przykładów zawartych w nocie i książce:

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


    Program co sekundę miga diodą na pinie PD7 (służy do debugowania) i co sekundę wysyła bajt 165 (działa poprawnie). Problem polega na tym że gdy podmienię w definicjach preprocesora CS z PB4 na PB6 (MISO) i przeniosę ustawianie CS jako wyjście na koniec funkcji InitSpi lub tuż przed wywoływaniem funkcji SendSpi. Program się zawiesza (z migania diody wynika że ostatnia linia pętli while wykonuje się raz lub wcale.

    Czy jest jakiś sposób aby użyć pinu MISO jako sygnał zatrzaskujący ? Może jest możliwość lepszej konfiguracji SPI do moich zastosowań.

    Kod umieszczamy przy pomocy syntax=c - Zielony J.
    Przepraszam, ale dlaczego SYNTAX'a nie ma wśród przycisków do edycji czcionki?

    _________________
    1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2013, o 14:06 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lut 2013
    Posty: 223
    Zbananowany użytkownik

    Pomógł: 21

    Cytuj:
    When the SPI is configured as a Master (MSTR in SPCR is set), the user can determine the
    direction of the SS pin.
    If SS is configured as an output, the pin is a general output pin which does not affect the SPI
    system. Typically, the pin will be driving the SS pin of the SPI Slave.
    If SS is configured as an input, it must be held high to ensure Master SPI operation. If the SS pin
    is driven low by peripheral circuitry when the SPI is configured as a Master with the SS pin
    defined as an input, the SPI system interprets this as another Master selecting the SPI as a
    Slave and starting to send data to it. To avoid bus contention, the SPI system takes the following
    actions:
    1. The MSTR bit in SPCR is cleared and the SPI system becomes a Slave. As a result of
    the SPI becoming a Slave, the MOSI and SCK pins become inputs.
    2. The SPIF Flag in SPSR is set, and if the SPI interrupt is enabled, and the I-bit in SREG is
    set, the interrupt routine will be executed.
    Thus, when interrupt-driven SPI transmission is used in Master mode, and there exists a possibility
    that SS is driven low, the interrupt should always check that the MSTR bit is still set. If the
    MSTR bit has been cleared by a Slave Select, it must be set by the user to re-enable SPI Master
    mode.
    O tym pamiętaj, 2 godziny życia przez to cholerstwo straciłem ;)

    Cytuj:
    SPI Pin Overrides

    Pin Direction, Master SPI Direction, Slave SPI
    MOSI, User Defined, Input
    MISO, Input, User Defined
    SCK, User Defined, Input
    SS, User Defined, Input
    A z tego, wynika, że raczej nie da tak rady, ale możesz spróbować :)

    _________________
    Nie pisz komentarzy - dobry kod komentuje się sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2013, o 14:20 
    Offline
    Moderator zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 18 lip 2012
    Posty: 3228
    Lokalizacja: Kraków - obok FAB5 ATMEL'a
    Pomógł: 91

    Cytuj:
    Przepraszam, ale dlaczego SYNTAX'a nie ma wśród przycisków do edycji czcionki?


    Masz listę Syntax wybierz i wtedy wybiera się C.

    _________________
    http://www.jaglarz.info



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 lip 2013, o 14:27 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sie 2012
    Posty: 245
    Lokalizacja: Kielce
    Pomógł: 6

    Znalazłem w tabelce że w rybie master MISO musi być wejściem. Jedynie nadzieja że może będzie dało się coś na tej nóżce badać niezależnie od SPI (od biedy mogę przecież nawet sczytywać dane z bufora wejściowego w celu badania np. stanu przycisku).

    _________________
    1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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