C szintaxis kérdés, avagy dsPIC33 AD scannelés
Kovács Árpád
arpad.kovacs at vipmail.hu
Sat Feb 3 20:30:27 CET 2007
Sziasztok!
dsPIC33-al adódott egy kis problémám, AD scannelést kellene csinálnom, és akkor nem kellene nekem multiplexelni a vonalakat, hanem megcsinálná azt automatikusan a periféria és az eredményeket a 16 szavas bufferben helyezi el a RAM-ban, melynek báziscímét ADC1BUF0 -nak hívják.
A problémám az, hogy csak a nulladik elemhez tudok hozzéférni, az utána következőkhöz nem, mert az ADC1BUF1, 2, 3... nincs külön deklarálva.
A proci egyik példaprogramjában így oldják meg:
ADC16Ptr = &ADCBUF0; // Értékadás a pointernek címképző operátorral
ADCValue = *ADC16Ptr++; // hozzáférés a buffer második eleméhez indirekcióval
Na jó, gondoltam akkor így jó lesz, deklarálom a mutatót az elején:
unsigned int *ADC16Ptr;
Erre a fordító az értékadás sornál warning-ol egyet, és persze nem működik a dolog:
warning: assignment discards qualifiers from pointer target type
Akkor most hogyan? :) Megnézve további példaprogramokat azt láttam, hogy úgy kerülik meg még ezt a dolgot, hogy vagy DMA kezelés van, vagy minden AD konverzióra megszakítás van és akkor nem kell csak a nulladik elemhez hozzáférni. Ha nem jön össze akkor maradok én is ennél.
Ha valaki tud segíteni, köszönöm előre is
Árpi
More information about the Elektro
mailing list