Sida 2 av 6
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 21 februari 2015, 22:04:58
av Icecap
Du kan vare 100% säker på att en ATmega kan klara det jag beskrev!!!
Till och med "med ena handen bunden på ryggen"!!!
Att du sedan inte fattar hur man gör är själva problemet.
Och du har ju visat dig genom tiden att din inlärningsförmåga är starkt begränsat så varför skulle det vara annorlunda nu?
Men om du faktisk ville göre något fungerande är det väl ett ypperligt tillfälle nu. Du kan sedan använda den lösning till så många saker så du inte kan tänka dig - och allt vid att kopiera färdig kod.
Och ja, första gången man använder interrupt kan det kännas lite svårt, det är dock i själva verket mycket enkelt. Dock måste du skrota alla de "färdiga" rutiner du använder - men du skriver att du använder "software serial" och detta brukar betyda att du låter programmet låtsas vara en UART och inte hårdvaran.
Detta betyder i sin tur att du definitivt inte kan låta den vänta 5 sekunder innan du "hämtar" något, den ska köra konstant!
Det är extrem dålig programmering och en total brist på förståelse för hur allt fungerar.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 21 februari 2015, 22:53:30
av hanzibal
Icecap: Ditt tålamod är beundransvärt!
Även om koden inte är särskilt bra så ser den spontant ut att kunna funka.
Softserial (mjukvaruemulering av UART) är implementerad med interrupt och vid 9600 baud bör det inte vara något problem tycker jag - om man nu inte samtidigt gör en massa andra saker som använder interrupter med högre prioritet så att man därför missar gpio-växlingar.
Jag tycker det verkar som att TS antingen har fel baudrate på mastern, för långa kablar mellan korten eller glapp i anslutningarna. Kolla detta.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 00:42:44
av MagnusK
Du kan kolla lite på vad andra har gjort.
Vi vet ju inte t.ex hur du har kopplat allt, t.ex om du har kopplat Arduino1 TX -> Arduino2 RX och Arduino1 RX -> Arduino2 TX?
Använder du rätt I/O enligt programmen?
Här är ett par exempel på seriell kommunikation mellan 2 arduinos:
http://lab.guilhermemartins.net/2008/12 ... nt-page-1/
http://robotic-controls.com/learn/ardui ... munication
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 00:55:09
av Al_Bundy
Icecap skrev:Du kan vare 100% säker på att en ATmega kan klara det jag beskrev!!!
Till och med "med ena handen bunden på ryggen"!!!
Att du sedan inte fattar hur man gör är själva problemet.
Och du har ju visat dig genom tiden att din inlärningsförmåga är starkt begränsat så varför skulle det vara annorlunda nu?
Men om du faktisk ville göre något fungerande är det väl ett ypperligt tillfälle nu. Du kan sedan använda den lösning till så många saker så du inte kan tänka dig - och allt vid att kopiera färdig kod.
Och ja, första gången man använder interrupt kan det kännas lite svårt, det är dock i själva verket mycket enkelt. Dock måste du skrota alla de "färdiga" rutiner du använder - men du skriver att du använder "software serial" och detta brukar betyda att du låter programmet låtsas vara en UART och inte hårdvaran.
Detta betyder i sin tur att du definitivt inte kan låta den vänta 5 sekunder innan du "hämtar" något, den ska köra konstant!
Det är extrem dålig programmering och en total brist på förståelse för hur allt fungerar.
Jag bytte processor och då blev det bättre, nu prickar jag alla värden, men dessa är dock fel värden.
Mitt protokoll fungerar att den skickar ett värde, väntar och kollar, får den inget så skickar den nytt och väntar och sedan kollar.
Du vill alltså att den ska inte vänta alls? Jag har väntetiden för att vara säker på att den skickar. För tänk om man säger åt att skicka ett kommando, men så gör den inte det. Kan ju hända det också. Eller är det så att om den har skickat vi säger talet 10, då har den skickat talet 10 och inte tomt luft eller 12?
Jag brukar inte lita på kommunikation mellan olika enheter.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 00:57:39
av Al_Bundy
hanzibal skrev:Icecap: Ditt tålamod är beundransvärt!
Även om koden inte är särskilt bra så ser den spontant ut att kunna funka.
Softserial (mjukvaruemulering av UART) är implementerad med interrupt och vid 9600 baud bör det inte vara något problem tycker jag - om man nu inte samtidigt gör en massa andra saker som använder interrupter med högre prioritet så att man därför missar gpio-växlingar.
Jag tycker det verkar som att TS antingen har fel baudrate på mastern, för långa kablar mellan korten eller glapp i anslutningarna. Kolla detta.
Nej, han har inget tålamod. Han får för sig massa dumheter bara att jag är sämst och kass. Han är inte medveten om att jag håller på bygga ett reglersystem i bryggning, ta magisterexamen, byggt PH stat som värderades till 40 tusen kronor i totalkostnad med mera. Han tror att jag är en sådan som inte kan något om något. Ja, jag är inte bäst på allt, men ska vi bråka om hållfastighetslära så sätter jag han på plats direkt
Kablarna jag använder är max 150 mm långa. Om det är glappt i RX,TX kan det då bli andra värden då?
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 01:06:44
av MagnusK
Du skrev i början att mastern skickade till slaven och sen väntade 5 sekunder innan den kollar efter data från slaven?
Är det inte bättre att lägga in att den ska känna av serieporten om det kommer ett svar från slaven istället för väntetiden?
Alltså:
Master skickar data till slaven och Mastern lägger sig i lyssnaläge direkt.
Slaven skickar svar till Mastern och Slaven lägger sig i lyssnaläge.
Mastern tar hand om den inkomna datan med en gång.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 01:11:02
av Al_Bundy
Tackar för länkarna.
Dessa ser verkligen enkla ut.
Mina protokoll är av följande metoder:
1. Skicka, vänta, kolla. Om inte finns, skicka vänta...kolla. Upprepa.
2. Anropa plats för värde, kolla efter bekräftelse, är bekräftelse OK? -> skicka värde. Om bekräftelse är inte OK, skicka igen, kolla efter bekräftelse, är bekräftelse OK? -> skicka värde. Upprepa.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 01:15:48
av Al_Bundy
MagnusK skrev:Du skrev i början att mastern skickade till slaven och sen väntade 5 sekunder innan den kollar efter data från slaven?
Är det inte bättre att lägga in att den ska känna av serieporten om det kommer ett svar från slaven istället för väntetiden?
Alltså:
Master skickar data till slaven och Mastern lägger sig i lyssnaläge direkt.
Slaven skickar svar till Mastern och Slaven lägger sig i lyssnaläge.
Mastern tar hand om den inkomna datan med en gång.
Ja, det skrev jag. Jag valde 5 sekunder bara för att liksom. Inget jag vill ha direkt.
Sådant protokoll har jag redan på en punkt. Men den är bra och jag är fortfarande på utvecklingsfasen. Jag tänkte först använda en sådan lyssnings-metod där man anropar slaven för att få dennes uppmärksamhet och sedan få en bekärftelse på uppmerksamheten och sedan skickar man. Typ ett kvitto.
Men med tanke på att det är temperatur jag frågar så bryr jag mig inte så mycket om jag får en grad fel under en sekund

Men jag ska tänka på det du säger. Troligtvis blir det en sådan metod.
Edit: Jag har en LCD framför mig som skriver ut vilka tal som åker fram och tillbaka mellan master och slave.
De börjar visa rätt tal nu, men ibland blir det 254 igen. Någon som vågar yrka på att det är glappt som gör så att det blir ett större värde än en byte?
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 07:51:17
av hummel
Snälla Al, lyssna på dom tips och svar du får. Lösningen på dina problem presenteras gång på gång.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 09:43:14
av tecno
så sätter jag han på plats direkt

Fan va du är duktig skonasaren.
Att ni orkar hålla på och mata honom fattar jag inte, era svar är ju som att hälla vatten på en gås. Han kommer aldrig att lära sig att läsa/lyssna på svaren.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 10:29:06
av hummel
Al_Bundy skrev:
<SNIP> Ja, jag är inte bäst på allt, men ska vi bråka om hållfastighetslära så sätter jag han på plats direkt
Sätter du
honom på plats vad gäller hållfasthetslära också?
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 10:44:08
av Al_Bundy
hummel skrev:Snälla Al, lyssna på dom tips och svar du får. Lösningen på dina problem presenteras gång på gång.
Men jag gör ju det.
Jag bara frågade HUR ni gör. Och ni ger mig förslag som jag har redan applicerat men det behövs lite finslipning.
Det jag undrar är om signaler kan bara försvinna ur tomma intet. Vi säger att jag skickar en signal till en annan men signalen kom aldrig fram. Vad kan det vara då för fel? Eller förekommer sånt? Tänkte att bufferten inte lagrar det.
Hur säker är detta protokoll?
Om jag skickar en signal från master till slave som säger att slave ska lyssna. Efter att jag har skickat signalen från master till slave så läser jag av om någon kommer från slave till master. Slave ska då skicka en bekräftelse att den är redå att ta emot. Jag får ett kvitto på bekräftelsen och när jag får det så skickar jag mitt värde till slaven.
Tycker ni att jag ska fortsätta att utveckla protokollet eller är detta ett bra protokoll?
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 10:50:04
av Kaggen
Al_Bundy skrev:De börjar visa rätt tal nu, men ibland blir det 254 igen. Någon som vågar yrka på att det är glappt som gör så att det blir ett större värde än en byte?
Vet inte vad du menar riktigt, 254 ryms i en byte. 256 däremot är större än en byte.
Kan vara vad som helst som är fel. Vad får dig att tro att 254 är fel värde? Vad förväntade du dig istället?
Mest troliga en bugg i din kod, eller att du inte riktigt vet vilka värden du skall få. Felkoppling kanske. Tvivlar på glapp.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 10:52:41
av SeniorLemuren
Al_Bundy skrev:
Jag bara frågade HUR ni gör. Och ni ger mig förslag som jag har redan applicerat men det behövs lite finslipning.
Hehe.
Slipa av lite smådetaljer.
Re: Kommunikation mellan olika processorer - Hur gör ni?
Postat: 22 februari 2015, 10:57:40
av TomasL
Mina protokoll är av följande metoder:
1. Skicka, vänta, kolla. Om inte finns, skicka vänta...kolla. Upprepa.
2. Anropa plats för värde, kolla efter bekräftelse, är bekräftelse OK? -> skicka värde. Om bekräftelse är inte OK, skicka igen, kolla efter bekräftelse, är bekräftelse OK? -> skicka värde. Upprepa.
Detta är knappast något protokoll, kanske dags att lyssna lite och läsa på i stället för att svamla.