Skocz do zawartości

jak przesłac tablice przez rf24L01


Pomocna odpowiedź

(edytowany)

a ten nagłowek  <cstdint> lub <stdint.h>   w którym miejsu w kodzie dac ? tuż za  

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

??????       kiedys probowałe zarówno    C jak i C++   i  to była dla mnie walka z wiatrakami .... teraz próbuje jak mawia Mirek Kardaś kocie arduino ...

Edytowano przez domel1
(edytowany)

@ethanak, o widzisz, przyzwyczajenie z g++, hehe.

@domel1, jest jeszcze micropython na esp32/esp8266. Jak dla mnie prostszy/szybszy w pisaniu od arduino. Chociaż wolniejszy w działaniu i nie zawsze wszystko jest w postaci gotowych bibliotek.

Edytowano przez orb777
36 minut temu, ethanak napisał:

stdint.h jest włączany przez Arduino.h, a Arduino.h jest automagicznie włączany dla plików *.ino

czyli gdzie w końcu go umieścić  w kodzie ?  sorry  ze tak mi trzeba tłumaczyc łopatologicznie ale to na serio łatwe nie jest 

ale w odbiorniku w tej cześci kodu 

  if (radio.available()) {
    uint8_t text[32] = {};
    radio.read(&text, sizeof(text));
    Serial.println(text);

to sie nie kompiluje  wyrzuca bład         
Compilation error: no matching function for call to 'println(uint8_t [32])'           co to znaczy ?

@domel1 To znaczy że metoda println istnieje tylko dla konkretnych typów argumentu, a nie dla wszystkich możliwych i kompilator nie wie co z tym zrobić.

Ćwiczenie numer jeden: zastosuj rzutowanie na char*. Spróbuj rozwiązać samodzielnie.

rzutowanie no rzutowanie  ... wyczytałem ze rzutowanie  to zamiana przeliczanie np   ze zmiennej char ktora jest zmienna do przechowywania znaków do zmiennej liczbowej  np int  czy  long int czy unsigned int czy float  i dalej nie wiem .... ten kurs na wiki tez jest tak wytłumaczony ze tak jakby autor pisal sam do siebie ... ksiazka Grębosza  tez jest trudna to jakis  koszmar ...nawet nie wiecie jaki to ból i wk...wienie jak człowiek chce cos zrobic zaprogramowac i nie wie jak ...

@domel1 coś źle wyczytałeś. Rzutowanie to nie jest żadne przeliczanie - w uproszczeniu to podanie typu (jak ma być coś interptetowane). W tym przypadku pewnie:

Serial.println ((char *) text);

Poza tym dlaczego radio.read (&text,... a nie radio.read(text,... skąd pomysł wskaźnika na wskaźnik?

ja juz nie wiem ... nic z tego nie rozumiem jak na mnie to jest wytłumaczone w jakis poj...any sposob jakby autor sam do siebie pisał ...

Używając znaku „&” przed nazwą zmiennej, w rzeczywistości wskazujemy zmienną przechowującą dane, które chcemy wysłać, a za pomocą drugiego argumentu określamy liczbę bajtów, które chcemy pobrać z tej zmiennej.  taki mi google podaje 

@domel1, podając samą nazwę tablicy, wskazujesz także adres jej pierwszego elementu ([0]). W tym przypadku nie dodajesz "&". Alternatywnie, zapisujesz podając indeks "&text[0]", wtedy używasz "&". Pisałem [tu] o tym.

@domel1 Mylisz rzutowanie z konwersją,(to do wcześniejszej twojej wypowiedzi): Pod spodem w pamięci zawsze masz bajty i albo mówisz jak te bajty rozumieć (rzutowanie) albo mówisz o zmianie jednych bajtów na inne (konwersja). 

Jeśli chcesz się nauczyć programować to musisz programować. To trochę to jak "Zen nauczy cię Zen" czy "Yoga nauczy cię Yogi", ale w moim przekonaniu, to jedyna droga.

Nie ma czegoś takiego jak "język Arduino". To jest język C++ (Np. dla najnowszego Arduino UNO-Q w wersji C++17), jak @ethanak mówił, z kilkoma miłymi ułatwieniami. Aby cokolwiek zrozumieć, musisz zrozumieć podstawy. Jeśli dla przykładu, nie widzisz bez zastanawianie się, że dla

 chr x[] = "Ala" ;

 x to tablica czteroelementowa (dlaczego nie 3?), co to jest zmienna, stała, literał, tablica, wskaźnik (strukturaklasa trochę później), to zacznij od nauczenia się podstaw, bo tak naprawdę to są "podstawy podstaw". Nikt nie jest w stanie rozpisywać ci wszystkiego "do spodu", bo każda odpowiedź zmieni się artykuł. Możesz wielu rzeczy nie rozumieć, ale musisz wiedzieć o czym mowa i gdzie szukać wyjaśnień.

(edytowany)

@domel1, jeżeli wcześniej nie ogarniesz tematu lub ktoś nie ogarnie za ciebie, to w weekend poszukam tych modułów i jak znajdę to coś ulepię. Serwa też gdzieś mam. Nastąpiła skleroza i moduły "zaginęły w akcji", ale wiem, że miałem z nimi do czynienia, tyle, że nie w arduino/avr. Widzę po tym wątku. Jesteś blisko rozwiązania, ale podstawy musisz zrozumieć sam, bez tego trudno programować.

Książki Grębosza (Symfonia, Pasja) dużo mi rozjaśniły. Wg mnie napisane są bardzo przystępnie jak "do ziomala, który (jeszcze) nie czai bazy". Nowszej "Opus Magnum" nie czytałem.

Edytowano przez orb777
char x[] = "Ala" ;  

 nooo nie wiem juz sam czy trzy czy czteroelementowa ale chyba jedno ...bo  jesli to jest char i typ znakowy i ciag znakow to jest jeden element ..juz sam nie wiem 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...