programmering råd trengs 8051-programmet

G

gandalf_be

Guest
Hello All,

Jeg er opptatt med å skrive et program som har å gjøre følgende:

Jeg har en 16 bit verdi som er lagret i to interne minneplasseringer
På et tidspunkt måtte jeg sette bitdata litt etter litt til en IO / pin seriell klokket på rythme av en ekstern klokke koblet til en IO-pin (16 klokke pulser).Det 17. klokken puls, tilbakestilles verdien som ble lagret i minnet steder.

første metoden som jeg brukte var å lagre dataene i normal interne data sted og Throug en RRC instruksjon for bit data kommer på io-pin.dette fungerer fint, men på et senere stadium en måtte gjøre dette for to 16-bits verdier på samme time.clocked på to ulike klokker. Dette betyr at jeg må presse og pop mye fordi jeg bare har én bære bit og accu.

Jeg tenkte å være flink og lagres mine verdier i litt adresserbare steder. Ved hjelp av en peker jeg lett kan hente ut litt data.
etter hver puls klokke jeg økes pekeren.men en eller annen grunn nektet han å få ut neste databit.Jeg kan se med debugger verdiene etter incrementation av pekeren (ser gjennom A)
annen grunn programmerbar nekter å brukt økes pekeren verdi.Jeg prøvde å bruke sette direktivet i stedet for EQU men jeg ikke ser ut til å fungere eiher.Ta en titt på det lille programmet i vedlegget.Ofcourse jeg kunne skrive rutinen for hver enkelt bit 16 ganger, men jeg ønsker å unngå dette.
Noen som har en ide om hvordan å løse dette på en forsvarlig måte uten en masse presse og spretter etc. ..

For din informasjon jeg bruker en C8051F120 develeopment styret fra cygnal.med Cycgnal IDE (Keil)Vennlig hilsen

Gandalf

 
Det enkleste ville være å bruke den innebygde maskinvaren SPI Buss i slave modus for å klokke ut data på Miso pin med en ekstern klokke koblet til SCK pin.
Se på side 253 i daasheet:
http://www.cygnal.com/datasheets/C8051F12x.pdf

 

Welcome to EDABoard.com

Sponsor

Back
Top