Skrivning till flera portar samtidigt i Arduino UNO möjligt?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Findecanor
Inlägg: 982
Blev medlem: 2 juli 2010, 23:04:07

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Findecanor »

På AVR så kan portar ha upp till 8 bittar. De är numrerade PORTA, PORTB, PORTC etc. med varje pinne numrerad A0..A7, B0..B7 etc. Alla (tror jag) är dubbelriktade. Alla portar har dock inte alla åtta pinnar.
Du kan skriva alla åtta bittar i en port i taget.

Arduino, däremot... har sin egen numrering för enskilda pinnar.
Jag har aldrig använt Arduino, men jag tror att mappningen mellan Arduinos numrering och AVR's portar/pinnar kan vara olika beroende på vilket Arduino-kort man använder.
Sen att Arduino har lite overhead för vissa saker... så skulle jag också kalla Arduino för ett gift.
Själv använder jag AVR-GCC och programmerar direkt mot hårdvaran - jag skulle inte vilja göra på något annat sätt.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45272
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av TomasL »

Problemet med Arduino är väl att man har skapat ett Mish-Mash med en egenkompilator, en egen icke-kompatibel variant av C++, hittat på helt egna icke-kompatibla namn på periferienheter osv, alt för att skapa en icke-portabel kod, och försöka låsa in användarna i sitt eget system.

Att man sedan använder gamla ut-daterade processorer gör ju inte saken bättre.
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Mr Andersson »

Att jämföra att lära sig cykla med en trehjuling, mot att lära sig programmera med en arduino är väldigt orättvist mot trehjulingen. Där lär man sig faktiskt någonting.
Arduino har skapat en generation av "programmerare" (jag skäms nästan för att kalla dem det) vars enda färdigheter är att veta hur man kombinerar ctrl-c ctrl-v med google.com.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Spisblinkaren »

TomasL skrev:Nja, det där köper jag helt enkelt inte.
Finns många betydligt bättre och roligare system, för samma peng, Dock inte lika kända kanske.
Nej, det är inte mycket av det jag säger som du köper ändå :D

MVH/Roger
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Icecap »

Just det gäller nog en mycket stor majoritet här i forumet.

Arduino är lagad för att det ska vara enkelt. Och det är det.
Men ska man göra "riktiga grejer" är det just en utdaterat uC de innehåller.

Jag jobbar med Renesas RX210, en 5V 32 bit uC med grejer i överflöde och den kör på 50MHz.

Tack vara en hel del jobb var jag nu standardrutiner för "allt" jag vill göra så jag har nog ett system som är enklare än Arduino att använda.

Programmeringen sköts med en seriell port (USB-dongel går bra) och kompilern kan köra C och C++ om man vill. Jag brukar köra med C11, det är enkelt och bra.

Det finns många andra uC som är i den klass och en hel del som är än vassare än RX210.

ATmega-serien var övervägd då projektet var i sin linda men blev övergivit snabbt, just pga. trögheten och alla brister.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av sodjan »

> En 6809 kan knappast klassas som primitiv jämfört med en PIC.

Väldigt märklig jämförelse. 6809 (och ja, jag har gjort en hel del med
den för 30+ år sedan) är självklart väldigt mycket mer primitiv än något
annan modern processor, oavsett om det är en PIC eller något annat.
För 30+ år sedan var jämförelsen mer relevant...

Hur som helst... Grundfrågan är väl besvarad och nu, med lite mer
förståelse från trådskaparen, så är det väl det hela ganska självklart.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45272
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av TomasL »

Ja, småprollarna tenderar att inte räcka till.
Själva kör vi hitintills med PIC32MX, men kommer i nästa revision gå över till PIC32MZ.
Vi började med 18F, men övergav dem mer eller mindre direkt, då de inte räckte till för mer än just POC.

ja Vi får hoppas Att TS har förstått hur det fungerar.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Spisblinkaren »

Jag läser databladet för processorn, ATmega (databladet följde med UNO),

Port B och Port D är på åtta bitar, undrar bara vart dom går på UNO-kortet :humm:

MVH/Roger
Användarvisningsbild
rvl
Inlägg: 5782
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av rvl »

På UNO blir det i praktiken bara portD som erbjuder alla åtta pinnar. (Kristallen tar två pinnar av portB.)
Borre
Inlägg: 4570
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Borre »

Bild
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Spisblinkaren »

rvl skrev:På UNO blir det i praktiken bara portD som erbjuder alla åtta pinnar. (Kristallen tar två pinnar av portB.)
Tack för den informationen!

MVH/Roger
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Spisblinkaren »

Borre skrev:Bild
Kan man svara mer klockrent än så här?

Stort tack, Borre!

MVH/Roger
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Spisblinkaren »

Okej, efter lite snabbstudier kommer jag fram till att PortD har I/O-benämningarna 0-7 och befinner sig längst ner till höger på kortet.

Då måste jag mao konfigurera om min första approach där IO2&3 har lyfts ut för IOC (Interrupt-On-Change).

Jag kommer istället använda IO8&9 för knapp-ingång respektive LED och IO0-7 för sinus-genereringen.

När det gäller knappen måste det vara möjligt att skriva egen interrupt-rutin för den, alternativt kan man alltid köra polling ;)

Jag tycker folket här inne är väldigt hjälpsamma, törs man vara lite fräckt lat och fråga hur syntaxen ser ut för skrivning till alla pinnar samtidigt i PortD?

Det är egentligen mest för att konkret få bekräftat att det går.

Om Ni inte kan eller orkar det, vänligen tala om för mig hur jag kan få reda på den informationen, t.ex står det i databladet för processorn, tror inte det, står det i databladet för UNO, tror inte det.

I värsta fall har jag Arduino's forum att vända mig till men jag gillar EF bättre :)

Tack för Eder hjälp hittills!

MVH/Roger
Senast redigerad av Spisblinkaren 26 november 2016, 16:55:43, redigerad totalt 1 gång.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45272
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av TomasL »

törs man vara lite fräckt lat och fråga hur syntaxen ser ut för skrivning till alla pinnar i PortD?
kanske:

Kod: Markera allt

PORTD=0xFF
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Skrivning till flera portar samtidigt i Arduino UNO möjl

Inlägg av Spisblinkaren »

Var det så löjligt enkelt?

Förlåt att jag besvärade Er med frågan :)

Nu kan jag gå vidare med mitt caddande av en samplings-shield för UNO (sinusgenerator&mät-shield låter kanske bättre?)

Tack Tomas för att du sjönk ner till min nivå!

MVH/Roger
PS
Jag går nu över till min tråd "Samplingssytem" http://elektronikforumet.com/forum/view ... 1#p1284411
Skriv svar