Zakupiłem biblioteki Pana Mirka Kardasia do obsługi SPI oraz dla modułu MkNRF24L01. Chcę używając ich skonstruować pojazd/zabawkę zdalnie sterowany.
Myślę że bardziej doświadczeni będą potrafili odpowiedzieć na pytania. Skupię się początkowo na samym SPI.
Korzystam z tutoriala
Nie posiadam zestawów ATB więc używając ATmega32 i ATmega16 zrobiłem na płytkach stykowych MASTER i SLAVE. Oszczędzę miejsca na opis jak to wszystko wygląda więc załączam fotki całej konstrukcji. Wszystko jest teraz w fazie testów tylko biblioteki dla SPI. Płytki połączone jedynie przewodami. Procki taktowane 8MHz, zasilanie z przetwornic - 5V (zasilacze).
Kod programu nie jest bardzo zmieniony, zostały wyrzucone linijki dotyczące obsługi diod LED no i konfiguracja pinów.
Po wysłaniu informacji z MASTERa otrzymuję z powrotem string z temperaturą (jak na filmiku). Tylko wygląda to tak, że przychodzi czasem cały tekst, po kolejnym naciśnięciu przycisku połowa lub jedna literka a innym jakieś śmieci. Sprawdzałem to na HW i SOFT SPI. Zmieniałem czas na przygotowanie odpowiedzi z stringiem z temperaturą, jak w tutorialu w ustawieniu "MASTER_SPI_DELAY_US".
Nic się nie poprawia. Nie wiem czy co jest przyczyną. Może to wina tych badziewnych przewodów łączących MOSI, MISO, SCK, SS + przewody na płytkach stykowych i coś tam na nich "sieje". Tutaj bym prosił o jakieś sugestie bo podejrzewam, że w przyszłości może mieć to wpływ na cały projekt.
Druga sprawa to sterowanie silniczkiem. Do SLAVE podpiąłem mostek H (L293D, patrz foto) z motorkiem TT D65, bez PWM, zasilany z tej samej przetwornicy co SLAVE. Tutaj chcę zrobić tak, że silnik obraca się tylko przy wciśniętym cały czas przycisku na MASTErze. Bo jak wyślę przy tej konfiguracji bajt który uruchomi silniczek to działa on non-stop a zatrzymać go można wciskając inny klawisz z bajtem który go zatrzymuje.
Tego raczej nie można umieścić w przerwaniu bo będzie zabierało czas z resztą sam Mirek to podkreśla a w pętli głównej nie za bardzo to wychodzi. Czasem obraca się szybciej, czasem wolniej a po usunięciu delayów z kodu (filmik) stoi i buczy. Tutaj też proszę o jakieś rozwiązania żeby ogarnąć to ciągłe wysyłanie informacji z MASTERa przy wciśniętym przycisku.
Myślę że bardziej doświadczeni będą potrafili odpowiedzieć na pytania. Skupię się początkowo na samym SPI.
Korzystam z tutoriala
Nie posiadam zestawów ATB więc używając ATmega32 i ATmega16 zrobiłem na płytkach stykowych MASTER i SLAVE. Oszczędzę miejsca na opis jak to wszystko wygląda więc załączam fotki całej konstrukcji. Wszystko jest teraz w fazie testów tylko biblioteki dla SPI. Płytki połączone jedynie przewodami. Procki taktowane 8MHz, zasilanie z przetwornic - 5V (zasilacze).
Kod programu nie jest bardzo zmieniony, zostały wyrzucone linijki dotyczące obsługi diod LED no i konfiguracja pinów.
Po wysłaniu informacji z MASTERa otrzymuję z powrotem string z temperaturą (jak na filmiku). Tylko wygląda to tak, że przychodzi czasem cały tekst, po kolejnym naciśnięciu przycisku połowa lub jedna literka a innym jakieś śmieci. Sprawdzałem to na HW i SOFT SPI. Zmieniałem czas na przygotowanie odpowiedzi z stringiem z temperaturą, jak w tutorialu w ustawieniu "MASTER_SPI_DELAY_US".
Nic się nie poprawia. Nie wiem czy co jest przyczyną. Może to wina tych badziewnych przewodów łączących MOSI, MISO, SCK, SS + przewody na płytkach stykowych i coś tam na nich "sieje". Tutaj bym prosił o jakieś sugestie bo podejrzewam, że w przyszłości może mieć to wpływ na cały projekt.
Druga sprawa to sterowanie silniczkiem. Do SLAVE podpiąłem mostek H (L293D, patrz foto) z motorkiem TT D65, bez PWM, zasilany z tej samej przetwornicy co SLAVE. Tutaj chcę zrobić tak, że silnik obraca się tylko przy wciśniętym cały czas przycisku na MASTErze. Bo jak wyślę przy tej konfiguracji bajt który uruchomi silniczek to działa on non-stop a zatrzymać go można wciskając inny klawisz z bajtem który go zatrzymuje.
Tego raczej nie można umieścić w przerwaniu bo będzie zabierało czas z resztą sam Mirek to podkreśla a w pętli głównej nie za bardzo to wychodzi. Czasem obraca się szybciej, czasem wolniej a po usunięciu delayów z kodu (filmik) stoi i buczy. Tutaj też proszę o jakieś rozwiązania żeby ogarnąć to ciągłe wysyłanie informacji z MASTERa przy wciśniętym przycisku.
