[elektro] PPS
Tóth Család
monipetiotthon at freemail.hu
Sat Feb 19 13:48:19 CET 2011
Sziasztok!
Nem fogjátok elhinni, hogy milyen marhaság miatt szívtam 2 napig!
Az U1TX multiplexere az RPOR4 regiszterben van, ezt próbáltam
beállítani. A lentebbi kód alapján sikerült működésre bírni, és
kiderült, hogy véletlenül RP0R4-et gépeltem, ami kétszeresen
megszívatott, mert a nulla és az O betű ugyanúgy néz ki MPLAB-ban és
valamiért a fordító sem jelzett hibát, szó nélkül lefordította nullával
gépelve.
A lényeg, hogy folytathatom végre a programot, és még egyszer köszönöm a
segítséget!
ToPe
> Itt van:
> üdv: Nándi
>
> 1269: __builtin_write_OSCCONL(OSCCON& 0xBF); // Unlock PPS
> 131B2 803A11 mov.w 0x0742,w1
> 131B4 200BF0 mov.w #0xbf,w0
> 131B6 608100 and.w w1,w0,w2
> 131B8 200461 mov.w #0x46,w1
> 131BA 200570 mov.w #0x57,w0
> 131BC 207423 mov.w #0x742,w3
> 131BE 784981 mov.b w1,[w3]
> 131C0 784980 mov.b w0,[w3]
> 131C2 784982 mov.b w2,[w3]
> 1270:
> 1271: // Inputs
> 1272: RPINR20bits.SDI1R = 21;
> 131C4 206A81 mov.w #0x6a8,w1
> 131C6 784091 mov.b [w1],w1
> 131C8 B3CC00 mov.b #0xc0,w0
> 131CA 60C000 and.b w1,w0,w0
> 131CC B34150 ior.b #0x15,w0
> 131CE B7E6A8 mov.b w0,0x06a8
> 1273: RPINR0bits.INT1R = 26;
> 131D0 206811 mov.w #0x681,w1
> 131D2 784091 mov.b [w1],w1
> 131D4 B3CC00 mov.b #0xc0,w0
> 131D6 60C000 and.b w1,w0,w0
> 131D8 B341A0 ior.b #0x1a,w0
> 131DA B7E681 mov.b w0,0x0681
> 1274: RPINR19bits.U2RXR = 17;
> 131DC 206A61 mov.w #0x6a6,w1
> 131DE 784091 mov.b [w1],w1
> 131E0 B3CC00 mov.b #0xc0,w0
> 131E2 60C000 and.b w1,w0,w0
> 131E4 B34110 ior.b #0x11,w0
> 131E6 B7E6A6 mov.b w0,0x06a6
> 1275:
> 1276: // Outputs
> 1277: RPOR9bits.RP19R = SCK1OUT_IO;
> 131E8 206D31 mov.w #0x6d3,w1
> 131EA 784091 mov.b [w1],w1
> 131EC B3CC00 mov.b #0xc0,w0
> 131EE 60C000 and.b w1,w0,w0
> 131F0 A03400 bset w0,#3
> 131F2 B7E6D3 mov.b w0,0x06d3
> 1278: RPOR13bits.RP27R = SDO1_IO;
> 131F4 206DB1 mov.w #0x6db,w1
> 131F6 784091 mov.b [w1],w1
> 131F8 B3CC00 mov.b #0xc0,w0
> 131FA 60C000 and.b w1,w0,w0
> 131FC B34070 ior.b #0x7,w0
> 131FE B7E6DB mov.b w0,0x06db
> 1279: RPOR5bits.RP10R = U2TX_IO;
> 13200 206CA1 mov.w #0x6ca,w1
> 13202 784091 mov.b [w1],w1
> 13204 B3CC00 mov.b #0xc0,w0
> 13206 60C000 and.b w1,w0,w0
> 13208 B34050 ior.b #0x5,w0
> 1320A B7E6CA mov.b w0,0x06ca
> 1280:
> 1281: __builtin_write_OSCCONL(OSCCON | 0x40); // Lock PPS
> 1320C 803A11 mov.w 0x0742,w1
> 1320E 200400 mov.w #0x40,w0
> 13210 708100 ior.w w1,w0,w2
> 13212 200461 mov.w #0x46,w1
> 13214 200570 mov.w #0x57,w0
> 13216 207423 mov.w #0x742,w3
> 13218 784981 mov.b w1,[w3]
> 1321A 784980 mov.b w0,[w3]
> 1321C 784982 mov.b w2,[w3]
> 1282:
> 1286:
> 1287: AD1PCFG = 0xFFFF;
> 1321E EB8000 setm.w w0
> 13220 881960 mov.w w0,0x032c
>
> > Szia!
>
> > Be tudnád nekem másolni az ASM kódot, amit erre a C rutinra fordít az
> > MPLAB? Ismerem ezt az utasítássorozatot, amit bemásoltál, benne van az
> > adatlapban, én meg elvileg az ASM forrását másoltam be lejjebb, de
> > szerintem valami hiányzik belőle, mert nem akar működni. Feltűnt, hogy a
> > kódodban van egy komment, hogy minden port analógra van állítva alapból.
> > Ezt spec. nem néztem, de tudom programból billegtetni azt a portlábat,
> > amin a led van, tehát elvileg nem lehet analóg, de majd megnézem ezt is.
> > Igazából ebben: __builtin_write_OSCCONL(OSCCON& 0xBF); // Unlock PPS
> > van a trükk, ennek kellene nekem az ASM megfelelője, mert már kitéptem
> > az összes hajam :S
>
> > ToPe
More information about the Elektro
mailing list