programavimo probleme pagal ccs kompiliatorių

C

chachah

Guest
Hey everybody, man pradeda mokytis PIC c. Turiu mažą problemą, norėčiau naudoti jungiklį bylą pagal ccs a pic 16F ir modeliuoti pagal Proteus. Programa susideda iš 2 mygtukai, jungiančių pin_b0 ir pin_b1, kai aš naudoju mygtuką, kuris prijungti pin B0 yra pin_c0 signalo ir pin_b1 pin_c1 signalo. Bet kai aš sudarant nėra klaida, bet jis neveikia Proteus. Yra vienas visada paskatino apšviesti be liesti mygtuką. # Include # saugikliai SS NOWDT, NOPROTECT # naudoti vėlavimą (laikrodis = 10.000.000) # baitų port_b = 0x03 # baitų port_c = 0x03 Int8 val; void main () {val = input_b () / gauti port_b vertę 00000001,00000010 , 00000011, kintamojo (val), o ((val> = 0x01 & val
 
Pirmiausia jūs tikrai turite PIC16F877 ir ne PIC16F877A? Yra skirtumas. Tiesiog skaitydamas savo kodą, Jūs ne atrodo, kad išjungė periferiniai įrenginiai, kurie dalijasi kodas panaudota smeigtukai ir sukonfigūruoti juos tinkamai arba skaitmeninę išvestį arba skaitmenin ÷ įvestis. Aš ne naudoti CCS Kompiliatorius, bet manau, kad jis siūlo SET_TRIS_X () makrokomandą uosto kaiščių kryptį. , Kaip antai:
set_tris_b (ALL_IN)
Nustato visus kaiščių PORTB kaip skaitmeniniai įėjimai. Kiek tam tikrą uosto nuoroda smeigtukai dalintis periferiniai įrenginiai: [URL = "http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf"] PIC16F87X duomenų lapas [/URL] Apžvelkite pagal uosto / O skyrius atitinkamą info. Jei naudojate PIC16F877A, nurodykite savo duomenų lapą, o ne. BigDog
 
Kodas atrodo supainioti. - Kodėl jūs manyti, kad uosto B bitai 2 7 yra nulis? Ar jums trumpą šiuos patekimą į žemę? - Kartą perskaičius įvestį, kodas srauto niekada palikti pirmąjį while (true) kilpa. - Antra while (true) yra netinkamas. Jei jis būtų kada nors įvykdytas, programa srautas įstrigo PS: numatytuosius parametrus (# use_standard_io), CCS technologijos C rinkiniai TRIS registrus bitai su Built-in I / O funkcijas, pavyzdžiui, įėjimo () arba išvesties (). Tiek, kiek jums nereikia nustatyti TRIS registruotis explicitely. Be šio klausimo, TRISx = 0xFF (visi įvestis) yra naujo valstybė visiems IPS uostų.
 

Welcome to EDABoard.com

Sponsor

Back
Top