Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

Mis picil viga?

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    Mis picil viga?

    Tegin sellise katseprogrammi. Kõrvetasin peale ja mõõtsin portb olekut, ehk siis panin testri peale, näitas nulli. Sama kõigi portidega. Kas pordid kutud? Sest programmeerija loeb kirjutab jms ilusti...

    Kood:
    	#include "p16f876a.inc"
    	LIST P=16f876a
    
    	errorlevel   -302  &#59;Suppress bank warning
    
    	__CONFIG _WDT_OFF & _XT_OSC & _CP_OFF & _LVP_OFF
    
    
    BANK0 MACRO
     BCF	STATUS,RP1
     BCF	STATUS,RP0
     ENDM
    
    BANK1 MACRO
     BCF	STATUS,RP1
     BSF	STATUS,RP0
     ENDM
    
    Start
    	CLRF	PORTB &#59; Initialize Port B
    	CLRW
    	BANK1  &#59; Select Register Bank 1
    	MOVWF	TRISB &#59; Set B to all outputs
    	BANK0
    
    MAIN
     movlw	0x89
     movwf	PORTB
     goto MAIN
    
    	END
    Oota! Las ma teen seda natuke paremaks...

    #2
    Unustasid PORTB pull-up takid sisse lülitada: bcf INTCON,RBPU. Kui väljaspool PICi kivist südant takid ripuvad, peaks töötama.
    NB! INTCON on pangas 1!
    - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
    - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

    Comment


      #3
      Mul juhuslikult vedeles laua peal üks programmeerimisel olev seade, mis sisaldas PIC 16f876a kontrollerit, huvi pärast kopisin su koodi ära, kompileerisin, põletasin.....töötab ka täiesti ilma pulluppideta.

      Viga peaks olema välises rauas.
      Sa kirjutasid portb registrisse väärtuse 10001001, mis tähendab, et 5V peab olema viikudel.
      Portb.0 (jalg 21), Portb.3(jalg 24), Portb.7(jalg 28).

      Kui PIC on sisse lülitatud, siis kontrolli, kas jalgade 8(vss) ja 21(vdd) vahel on 5 volti. järgmiseks vaata üle kas PICI koival nr 1 (MCLR) on enam-vähem 5v.

      Järgmise sammuna vaata, kas kvarts ja kondekad on korralikult ühendatud ja kondekatel on õiged väärtused 20MHz kvartsiga sobivad 12pF. Kui kasutad välist kiiret kvartsi (üle 4MHz), siis pead konfimissõnas ära muutma (_XT_OSC asemel _HS_OSC).

      __CONFIG _WDT_OFF & _HS_OSC & _CP_OFF & _LVP_OFF

      Kas kood kompileerus ilma igasuguste warning'uteta.

      Kui kõik asjad paistavad olevat õiged, siis millist toiteallikat sa kasutad, tavalise odava seinakuubiku korral tuleb mõnikord lisada kuni 200uF lüüt ja pici toiteotstele võimalikult lähedale 100nF keraamiline (seda sa arvatavasti tead).

      Kui kõik paistab korras olevat, siis on üks väike võimalus, et PIC on otsad andnud (üldised on need sitikad üpris elujõulised)

      Comment


        #4
        Kasutan jah kiiret, 8MHz resonaatorit kuid imelik on see, et vanasti, kui asi roboti peal oli, siis resonaatorite vahetusega 4/8MHz muutsin kogu roboti kiirust ajaviiteks. Ei muutnud koodis ridagi. Eks proovin kodus 4MHz resonaatoriga ja vaatan mis ta arvab. PICile muidu tuleb vool ilusasti peale ja MCLR jalal on kah 4.8V peal.
        Oota! Las ma teen seda natuke paremaks...

        Comment


          #5
          Probleemiks oli hoopis PICALL tarkvara, mis ei suutnud PICiga suhelda enam, kuna veateadet midagi ka ei öelnud, siis ei osanud kahtlustadagi.
          Oota! Las ma teen seda natuke paremaks...

          Comment

          Working...
          X