Kommunikation mellan olika processorer - Hur gör ni?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kommunikation mellan olika processorer - Hur gör ni?

Inlägg av Al_Bundy »

Icecap skrev:Start med att göra en testcase.
* Slaven svarar på fråga med ett värde som t.ex. räknas upp med 1 för varje gång den frågas. Kan ju börja på något lämpligt värde i närheten av 255, t.ex. 250. Att ha ett kommando för "nollställ räknaren" känns bra, då kan den komma om man laddar in ny version program i mastern.

* Mastern frågar och hämtar svaren och du jämför med vad det borde vara.

Men min gissning är den vanliga: du skickar bytes hit och dit - utan att ha koll på vad du egentligen sänder och utan att ha koll på hur du ska ta emot värden.

Det är väl floats igen - eller försöker du sända en int?
Jag kör bara ints nu.

Jag vet att ett tal mellan 0 och 255 är en byte på ASCII 8-bits tabellen. available() returnerar ett tal som talar om hur stor bufferten är. Maximala är 64 bytes. Men jag vill bara ha 1 byte i min buffert, dvs ett tal. Därför om master skickar för snabbt , dvs available() visar mer än 1 bytes, så flushar slaven och inväntar ett nytt värde från mastern. Nu har jag en sekunds mellanrum mellan varje sändning och nu är jag nöjd :) Jag måste ha en sekund också för jag räknar på tid.

Min gissning är att du tror jag inte gör något och bara testar mig fram utan att ens "forska" i ämnet. Ja, delvis rätt, men hälften fel.
Jag har lärt mig lite grann.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Kommunikation mellan olika processorer - Hur gör ni?

Inlägg av Icecap »

Som vanligt har du ytterst lite koll på vad du gör.

En int är (ganska sannolikt, nästan alltid) två bytes! Så du överför INTE ett värde åt gången, du överför ett halvt!

I denna - och så många andra - trådar har du fått veta hur du bör göra för att överföra värden korrekt - så jag ids inte upprepa det.

Du påstår dig lära vid att göra - men i själva verket gör du en massa som mest påminner om rallarsvängar - men lär inget av det. Vad med att faktisk läsa svaren du har fått och testa dom?

Du använder väldigt mycket tid på att gå i cirkel, hade du istället tagit ett steg åt gången och verifierat funktionernas duglighet hade du löst detta och himla mycket mer på den tid du lägger på det hela.

Jag ska vara ärlig: jag hoppas att du aldrig blir inblandat i design av säkerhetskritiska system.
Du har helt säkert - som alla andra - något du är bra på men det är inte logisk tänkande och analys med lösning av problem.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kommunikation mellan olika processorer - Hur gör ni?

Inlägg av Al_Bundy »

En int är (ganska sannolikt, nästan alltid) två bytes! Så du överför INTE ett värde åt gången, du överför ett halvt!
Nej. Jag överför inte ett halfvt. Jag sa också fel när jag menade datatyp. Jag använder byte.
Du påstår dig lära vid att göra - men i själva verket gör du en massa som mest påminner om rallarsvängar - men lär inget av det. Vad med att faktisk läsa svaren du har fått och testa dom?
Du vet inte vad jag gör ens, eller vilken bakgrund jag har. Jag är självlärd.
Du använder väldigt mycket tid på att gå i cirkel, hade du istället tagit ett steg åt gången och verifierat funktionernas duglighet hade du löst detta och himla mycket mer på den tid du lägger på det hela.
Learning by doing. Jag har inte tid att studera massvis med böcker om just hur processorer och kommunikation fungerar just nu. Just nu försöker jag bara få det fungera och det har jag lyckats med. Ändå säger du att jag inte kan. Men ja jag förstår att jag kör fast ofta. Inget jag nekar.
Jag ska vara ärlig: jag hoppas att du aldrig blir inblandat i design av säkerhetskritiska system.
Du har helt säkert - som alla andra - något du är bra på men det är inte logisk tänkande och analys med lösning av problem.
Om man säger så här: Jag är ingen teoretiker direkt. Praktiker till mesta delen och jag har större kunskap i att skruva i jänkare/volvo än programmera i C. Men det är så att jag tänker inte försörja mig på detta. Jag gör detta bara för min hobbys skull som jag ska ha för mig själv och då lägger jag inte ner så mycket tid på att få snålt och effektivt. Jag hoppas du förstår vad jag menar? Mina områden angående detta sträcker sig från allt tända en lampa till att prata med en dator för att styra en motor. Ja, jag har hållt på med PLC och det gör jag redan nu. Crouzet Millenium och Codesys kör jag.

Så jag hoppas detta ska bli en lättnad för dig att jag inte satsar på detta som ett yrke. Däremot så tycker jag att du borde bli en aning bättre pedagog, men jag har samtidigt förståelse att det är svårt med mänsklig kommunikation över textbaserad miljö, exempelvis forum :)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46971
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Kommunikation mellan olika processorer - Hur gör ni?

Inlägg av TomasL »

Däremot så tycker jag att du borde bli en aning bättre pedagog
Det är inte lätt att vara pedagogisk när man försöker prata med en döv och blind vägg.
Jag är självlärd
Det är de flesta här också, så även jag.
Jag har inte tid att studera massvis med böcker om just hur processorer och kommunikation fungerar just nu
Det hela hade gått fasiken så mycket snabbare för dig om du hade gjort det i stället.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Kommunikation mellan olika processorer - Hur gör ni?

Inlägg av Icecap »

Al: Självlärd? Du borde få dina skolpeng tillbaka!

Inom µC är jag helt och totalt självlärd! Liksom inom design av elektronik, EMC och programmering - och bilmek, cykelmek, svetsning, snickrande, massage och en hel del annat.

Ditt återkommande problem är att det enda du vill förstå/lyssna på är att du har rätt. Om du ens läser inläggen förkastar du vad som tipsas om, herregud, de tips har bara fungera för alla andra - och du är ju så pass unik att det nog inte fungerar för dig - eller hur?

Vill du verkligen lära något är det dags att faktisk följa de råd du får - och inte alla på samma gång!
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kommunikation mellan olika processorer - Hur gör ni?

Inlägg av Al_Bundy »

"Vill du verkligen lära något är det dags att faktisk följa de råd du får"

Men jag gör ju det.
Om ni inte hade förklarat för mig angående överföring med bytes/buffert och liknande så hade jag inte fixat det jag gjorde igår.
Användarvisningsbild
Oltronix
Inlägg: 485
Blev medlem: 10 december 2011, 21:24:38
Ort: Nynäs

Re: Kommunikation mellan olika processorer - Hur gör ni?

Inlägg av Oltronix »

Jag skrev något svar sent igår kväll men så dog datorn och en del av texten försvann innan jag sparat hela. Det var nog ett teckan på att det var ett sånt där "mail som man inte skall skicka". Det var nog mest filosofiska argument för att jag tyckte att du skulle byta teknik till något enklare att hantera. Använd applikationer som wget, sftp,ftp, mfl baserade på TCP/IP, Ethernet/Wi-Fi så slipper du massa kod för att polla av eller interuptrutiner till UART. Förståss inte om du skall bygga 1000-tals enheter och priset per enhet är en viktig parameter. Ja du kan behöva byta järnskrot (HW) men HW är billigt men din tid vädefull. Tid går inte att köpa ny hur mkt pengar man än har.
Jag vet, jag säger detta utan att kunna din applikation.
Jag hoppar argumentattion för detta för att...

Nu något mer konkret:

-C mfl språk har något som heter switch/case. Andra språk kallar det case men samma funktion.
Använd det istället för massa nästade "if" och "else if" som är ovöverskådligt och kan förvilla och
sätta myror i hövvet på vem som helst.

PS
Icecap säger:
Steg 1 är att bestämma vilken sorts kommunikation. Rätt typ beror på avstånd, hastighetskrav osv.
Steg 2 är att göra specifikationer för krav på hastighet, feltolerans och dylikt.
Steg 3 är att göra ett kommunikationsprotokoll som beskriver funktionerna kontra data.
Jag håller med om detta men kanske vill jag modifiera "Steg 3". Istället: Använd ett protokoll som redan finns och är testat av andra om det finns lämpligt. (TCP/IP finns och många använder det).

Till detta kan jag väl tycka att det är helt ok att göra provskott för att testa teknik och ideer. Det farliga med det är dock att man börjar bygga sitt system runt provskott/prototype. Det blir sällan bra. Prototyper skall skrotas men insikerna skall bevaras i systemutvecklingen.
Skriv svar