Küsimus:
Kuidas on õige muuta raamatukogu tihvtide vastendused konfigureeritavaks?
vossad01
2017-08-20 19:58:51 UTC
view on stackexchange narkive permalink

Ma töötan mõne raamatukoguga, mis pakub API-sid konkreetsete riistvarakiipidega suhtlemiseks (mis muudab need draiverid?) Erinevatel kohandatud tahvlitel või kilpidel on kiip kaardistatud erinevatele tihvtidele, mis tähendab, et raamatukogu tuleb iga juhtumi puhul muuta. Teegi muutmise vajadus ei tööta Arduino IDE teegihalduriga hästi.

Kas selle konfiguratsiooni kuvamiseks on eelistatud / soovitatud mustrid, nii et teeki ennast ei peaks iga kord muutma?

Siin on näide, kus on dokumenteeritud, millist osa tuleb muuta, et see vastaks teie tahvli pin-paigutusele.

Paljud tavalised Arduino raamatukogud seda juba teevad - alustage selle meetodiga tutvumisest isegi kasutaja vaatenurgast.
Neli vastused:
Majenko
2017-08-20 21:29:25 UTC
view on stackexchange narkive permalink

Minu kasutatav meetod on anda konstruktorile tihvtid parameetritena. Need PIN-koodid salvestatakse muutujatesse, et neid saaks hiljem kasutada funktsioonis .begin () ja mujal.

Enamasti kasutan initsialiseerimisloendeid, et asjad lihtsad oleks. Näiteks:

  klass Midagi {uint8_t _cs; uint8_t _dc; Midagi (uint8_t cs, uint8_t dc): _cs (cs), _dc (dc) {} void begin ();}; void Something :: begin () {pinMode (_cs, OUTPUT); pinMode (_dc, OUTPUT);} Midagi minu midagi (10, 8);  
Michel Keijzers
2017-08-20 22:11:59 UTC
view on stackexchange narkive permalink

Kasutaksin ühte järgmistest võimalustest:

Kasutage (klassi) muutujaid ja määrake need konstruktori sees.

Eelised:

  • Alustatakse alati
  • lihtne kasutada (konstruktori ja tihvti seadistamine korraga)

Kasutage eraldi meetodit (nt Init) .

Eelised:

  • saab dünaamiliselt muuta

märkused

Tihvtide seadete jaoks kasutatakse enamasti staatilisi vooluringe, nii et esimene lähenemine on tõenäoliselt parem.

Seadete puhul on parem enamasti teine ​​meetod.

Kui kaasatud on palju tihvte (pole tõenäoline), kasutage struktuuri või eraldi pin-seadete klassi.

Makrod

Mida ma ei soovitaks, on makrod. Kui kasutajad peavad ise lähtekoodi muutma ja uued versioonid on installitud, peavad nad muudatused uuesti ühendama või uuesti tegema. Plussideks on natuke väiksem (masina) kood, tõenäoliselt natuke kiirem ja natuke väiksem mälukasutus, kuid kõik kolm aspekti on minimaalsed.

dannyf
2017-08-20 21:19:17 UTC
view on stackexchange narkive permalink

olenevalt teie lähenemisviisist.

1) kui sisestate lihtsalt binaar- + päisefailid, peate tegema muutujate tihvtid.

2) kui lisate allika kood ja oodake, et kasutaja lähtekoodi uuesti kompileeriks, kasutage makrosid.

Avamander
2017-08-21 03:56:12 UTC
view on stackexchange narkive permalink

Kui te väldiksite C ++ konstruktori asju, mis on Arduinol enamasti liiga suured, võite kasutada #define 'e (objektilaadsed makrod).

Nii:

  #define PIN_ONE 1 # define PIN_TWO 2  

Eeltöötleja asendab sujuvalt PIN_ONE numbriga 1 ja PIN_TWO 2-ga eeldades, et need määratlused asuvad teegi päises .h . Tõenäoliselt võtab see teiste võimalike lahendustega võrreldes kõige vähem ressursse.

Probleem on selles, et nad peavad olema kohas, kuhu pääsevad nii .ino-fail kui ka teegi allikas. See tähendab tavaliselt eraldi päisefaili koos kõige vajalikuga.
Oled sa kindel? Päris kindel, et saan .ino's teha #define lülitid ja neid kasutatakse raamatukogudes, kuid ma võin eksida.
See võib töötada, kui teegi kood on rangelt päises, kuid mitte siis, kui see on mõnes teises kompileerimisüksuses.
Jah, see on mõistlik, ei teadnud täpseid piiranguid, lisas see lahtiütlus.


See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...