+ Vasta teemale
Lehekülg 1 / 2 12 ViimaneViimane
Näitan vasteid 1 kuni 15 19-st

Teema: Palun abi koodi kontrollil

  1. #1
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Palun abi koodi kontrollil

    Tere.

    Jupp aega mässanud ühe vana jupiga aga ei saa eluvaimu sisse. Rauapool peaks nagu korras olema enda arust. Kas keegi võiks koodile pilgu peale visata, äkki seal midagi kahe silma vahele jäänud?

    Peaks siis juhtima PORTA pinide 0-3 kaudu kahte mootorit. Kummagi mootori jaoks kaks pinni, üks lülitab mootorit sisse välja, teine määrab pöörlemise suuna.

    Probleemiks siis see, et pici pinnid jäävad LOW hoolimata koodist ja mootorid käima ei hakka. Programmaatoriks PicKit 2 ja proovisin ka in-circuit-debug modes, aga ei miskit.

    Kood:
     
    #include "p16f876a.inc"
    LIST P=16f876a
    errorlevel -302 ;Suppress bank warning
    __CONFIG _WDT_OFF & _XT_OSC & _CP_OFF & _LVP_OFF
     
    cblock 0x20 ; local variables, only in bank 0
    WCYCLE
    endc
    ;*************************************
    ;****** Define stuff *****************
    ;*************************************
    #define RMotor_Dir PORTA,0
    #define Enable_RMotor PORTA,1
    #define Enable_LMotor PORTA,2
    #define LMotor_Dir PORTA,3
     
    ;*****Declaring constants*****
    CONSTANT PRESCstd=b'00000001' ; Standard prescaler value for TMR0
     
    ;*************************************
    ;*****Let's get started***************
    ;*************************************
    org 0x00 ; reset vector -- executed on reset
    goto Start
    ;===================================================================
    ; Interrupts 
    ;===================================================================
    Interrupt org 0x04 ; interrupt vector 
    retfie
     
    ;********Macros***********
    ;***** Bank *****
    BANK0 MACRO
    BCF STATUS,RP1
    BCF STATUS,RP0
    ENDM
    BANK1 MACRO
    BCF STATUS,RP1
    BSF STATUS,RP0
    ENDM
    BANK2 MACRO
    BSF STATUS,RP1
    BCF STATUS,RP0
    ENDM
    BANK3 MACRO
    BSF STATUS,RP1
    BSF STATUS,RP0
    ENDM
    ;***** Wait *****
    WAIT macro timeconst_1
    movlw timeconst_1
    call WAITstd
    endm
    WAITX macro timeconst_2, PRESCext
    movlw timeconst_2
    movwf WCYCLE
    movlw PRESCext
    call WAIT_x
    endm
     
    ;****The main program*****
    Start
    BANK0
    CLRF PORTA ; Initialize PORTA by
    ; clearing output
    ; data latches
    BANK1
    MOVLW 0x06 ; Configure all pins
    MOVWF ADCON1 ; as digital inputs
    MOVLW 0xF0 ; Value used to 
    ; initialize data 
    ; direction
    MOVWF TRISA ; Set RA<5:4> as inputs
    ; RA<3:0> as outputs
    ; TRISA<7:6>are always
    ; read as '0'.
    MAIN
    bsf RMotor_Dir
    bsf Enable_RMotor 
    WAIT .100
    bsf LMotor_Dir
    bsf Enable_LMotor
    WAIT .100
    CLRF PORTA
    goto MAIN
    ;****Subprograms****
    WAITstd
    movwf WCYCLE
    movlw PRESCstd
    WAIT_x
    clrf TMR0
    BANK1
    movwf OPTION_REG
    BANK0
    WAITa
    bcf INTCON,T0IF
    WAITb 
    btfss INTCON,T0IF
    goto WAITb
    decfsz WCYCLE,1
    goto WAITa
    return
     
    END
    Viimati muutis raitl : 17-11-08 kell 07:12
    Oota! Las ma teen seda natuke paremaks...

  2. #2
    Liige felch Kasutaja maine on neutraalne felch avatar
    Liitunud
    01/2002
    Asukoht
    Tallinn
    Postitusi
    8.275

    Algseade Vs: Palun abi koodi kontrollil

    Minu meelest puudub sul enne main'i käsk BANK0. Proovi sellega!
    Asi selles, et sa lülitad pangale 1 ja jäädki sinna. Nii aga ei saa pordi väljundregistrit juhtida.
    - 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!

  3. #3
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Vs: Palun abi koodi kontrollil

    Nii, korrigeerisin selle ära ja tundus et esimese hooga isegi tahtis asi toimida. Kuid delayd olid liiga lühikesed ja nii tekitasidki mootorid ainult sirinat. Aga kui hakkasin TMR0 prescalerit muutma, siis peale seda saabus vaikus majja ja taas isegi esialgse koodiga enam ei toimi. Nüüd siis BANK0 ikka õiges kohas peale TRISA seadmist...

    Kui programmaator ilusasti kivi ei loeks ja ei kirjutaks, siis hakkaks kartma et raua viga. Aga peale progemist on verify OK.

    No ei saa aru. Ladusin teise prose ilma lisakomponentideta Project Boardile kokku, ainult resonaatori ja MCLR pull-up'i panin paika. progesin ilusasti ära ja lasin toite peale. Siis asusin testriga PORTA jalgu jälgima. No mitte kui midagi ei toimu...
    Viimati muutis raitl : 17-11-08 kell 23:24
    Oota! Las ma teen seda natuke paremaks...

  4. #4
    Liige felch Kasutaja maine on neutraalne felch avatar
    Liitunud
    01/2002
    Asukoht
    Tallinn
    Postitusi
    8.275

    Algseade Vs: Palun abi koodi kontrollil

    Vaata ossiga. Kui seda pole, sea viiteaeg pikemaks et tester jõuaks reageerida. Sinu prosel vist ei ole analoog-komparaatorit? Kui siiski on, tuleb see välja lülitada (CMCON=0x07).
    Kui muu ei aita, tõsta asjad PORTB külge. See toimib ilma lisa-imevidinateta.
    - 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!

  5. #5
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Vs: Palun abi koodi kontrollil

    Täpselt sama tulemus ka PORTB puhul... Tulemus null... Sättisin PORTB väljundid püsivalt kõrgeks, ikka ei midagi. Kahjuks mõõteriistadest ainus kättesaadav seesama multimeeter.
    Oota! Las ma teen seda natuke paremaks...

  6. #6
    Liige felch Kasutaja maine on neutraalne felch avatar
    Liitunud
    01/2002
    Asukoht
    Tallinn
    Postitusi
    8.275

    Algseade Vs: Palun abi koodi kontrollil

    Kui sa nüüd kuidagi valesti ei mõõda või tester vigane ei ole, peab asi olema ikkagi koodis. Viska kood uuesti üles, vaatame.
    - 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!

  7. #7
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Vs: Palun abi koodi kontrollil

    Selline on siis viimane kood mida proovisin. Skeemis lisaks picile:

    resonaator, takisti+diood MCLR jalale, skeemi isoleerivad 10k takistid jalgadel PGD ja PGC ning 16v 100uF lüüt toites.

    Kood:
     #include "p16f876a.inc"
     LIST P=16f876a
     
     errorlevel      -302    ;Suppress bank warning
     
     __CONFIG _WDT_OFF & _XT_OSC & _CP_OFF & _LVP_OFF
     
     cblock 0x20   ; local variables, only in bank 0
     endc
     
    ;*************************************
    ;*****Let's get started***************
    ;*************************************
     
    org  0x00  ; reset vector -- executed on reset
     goto Start
     
    ;===================================================================
    ; Interrupts    
    ;===================================================================
     
    Interrupt  org  0x04   ; interrupt vector 
        retfie
     
     
    ;***** Macros *****
     
    BANK0  MACRO
      BCF STATUS,RP1
      BCF STATUS,RP0
      ENDM
     
    BANK1  MACRO
      BCF STATUS,RP1
      BSF STATUS,RP0
      ENDM
     
    BANK2  MACRO
      BSF STATUS,RP1
      BCF STATUS,RP0
      ENDM
     
    BANK3  MACRO
      BSF STATUS,RP1
      BSF STATUS,RP0
      ENDM
     
     
     
    ;****The main program*****
     
    Start
     
     BANK0
     CLRF PORTB   ; Initialize PORTB
     
     BANK1
     MOVLW 0xFF   ; Set all PORTB Output
     MOVWF TRISB  
     BANK0
     
     MOVLW 0xFF
     MOVWF PORTB  ; Set all PORTB Output HIGH
     
    ;***** Simple loop ******
    MAIN
     
      nop
     
     goto MAIN
     
     
     
     
     END
    Oota! Las ma teen seda natuke paremaks...

  8. #8
    Liige felch Kasutaja maine on neutraalne felch avatar
    Liitunud
    01/2002
    Asukoht
    Tallinn
    Postitusi
    8.275

    Algseade Vs: Palun abi koodi kontrollil

    1. Koodi kirjutaja on vist AVRi fänn, PICil on TRIS registri bitt =1 tähendusega "pin on SISEND". Seega oled PORTB kõik otsad sisendiks defineerinud. Mõni ime siis et midagi huvitavat ei juhtu...
    AVRil on minu teada tõesti vastupidi.
    2. Main tsükli alguses tuleb lülituda mälupangale 0. OK, Su kood ei tee midagi ja hetkel see tõesti ei mõju aga ...hiljem unustad...
    3. Resonaator...mitte kvarts siis? Kvarts oleks parem. Kas tollel PICil sisemist generit ei olegi ?
    Mis takid PORTB,.7 ja .6 otstelt toitesse lähevad? NAd ei sega aga vaja neid ka ei ole.
    MCLR pinni saab konfi bittidega disableda ja siis pole ka sinna takistit vaja (reseti nupu ühendamise võimalus kaob ka, tõsi küll).
    - 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!

  9. #9
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Vs: Palun abi koodi kontrollil

    Niimoodi siis...

    1. Sisendid sain nüüd TRIS registris õigesti paika.
    2. BANK0 sai MAIN tsükli ette kirja
    3. Tegu ikka jah kvartsiga, sellise 4.00 Hz kolmjalaga

    Takid ei lähe mitte toitesse, vaid isoleerivad PORTB 6. ja 7. jalga süsteemist. Nagu soovitab Microchipi ICSP juhend. Et saaksin neid kasutada ka millekski muuks kui ainult ICSP.

    Tulemuseks igastahes nüüd see, et PORTB,0 püsib HIGH. Teised ikkagi LOW
    Oota! Las ma teen seda natuke paremaks...

  10. #10
    Liige felch Kasutaja maine on neutraalne felch avatar
    Liitunud
    01/2002
    Asukoht
    Tallinn
    Postitusi
    8.275

    Algseade Vs: Palun abi koodi kontrollil

    Kui prosel jookseb sama kood, mis siin viimasena, siis nii peabki olema. A-porti sa ju ei initsialiseeri ja ei torgi muud moodi ka. Vaikimisi on port vist A/D-ga ühendet.
    PORTB tõstad ise kõrgeks...jällegi nii nagu peab.
    Kvartsid on enamasti 2 jalaga. Mõnedel on tõesti maaklemm ka. Kui muu ei aita, siis proovi tavaline kvarts skeemi tinutada. Paistb et sul on ikka keraamiline resonaator ja see võib jamada (prose ei käi).
    - 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!

  11. #11
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Vs: Palun abi koodi kontrollil

    Mitte terve PORTB pole HIGH, vaid ainult PORTB,0 ehk siis RB0. Ülejäänud PORTB väljundid on LOW. Ja neid resonaatoreid olen eelnevalt ilusasti kasutanud sama prosega. Mul on skeemi joodetud kolmene aukliist kuhu pistan siis resonaatori sisse. Et saaksin vajadusel ilma jootekolvita vahetada.


    Aga äkki oleks kõige õigem, kui keegi saaks anda mingi minimalistliku koodi 16f876A jaoks mis on kindlalt toiminud ja mille toimimist oleks ka lihtne kontrollida.

    Kõrvetaks lihtsalt sisse ja vaataks kas asi toimib.
    Oota! Las ma teen seda natuke paremaks...

  12. #12
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Vs: Palun abi koodi kontrollil

    Vahelduseks ka natuke positiivset.

    Tundub, et hakkas tööle asi. Mootorite pinin oli tingitud sellest, et mootoreid juhtiv kivi nõuab minimaalselt 4.5V mootorite toitesse, mul aga oli 3.6V süsteemi toiteks.

    Arusaamatuks jääb nüüd vaid veel see, miks tester ei näidanud midagi PORTB jalgadel.
    Oota! Las ma teen seda natuke paremaks...

  13. #13
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Vs: Palun abi koodi kontrollil

    Sain siis vahepeal asja kuigipalju toimima kui viisin kogu süsteemi 4.8V peale. Aga siis selguski tõsiasi et mootorid resetivad pici. OK, tegelesin selle probleemi lahendamisega ja nüüd kui tahtsin uuesti katsetada...probleem.

    Nimelt ei saa ma enam oma 16f876-te progeda ega ka kustutada. Loeb ilusasti, vana kood on peal aga kustutada ega ülekirjutada ei saa. Proovisin nii PicKit 2 softiga kui MPLAB IDE-ga. Olen proovinud toidet peale anda nii progejast kui süsteemist.
    Oota! Las ma teen seda natuke paremaks...

  14. #14
    Liige felch Kasutaja maine on neutraalne felch avatar
    Liitunud
    01/2002
    Asukoht
    Tallinn
    Postitusi
    8.275

    Algseade Vs: Palun abi koodi kontrollil

    Nii käitub muu hulgas tuksis prose. Olen isegi 2 niiviisi 12V toitega läbi lasknud. Kivid töötavad v.a. see viik, kuhu 12V läks. Lugeda lubab, progeda/kustutada enam mitte. Kivi oli 16F648.
    Teisest teemast võis teha järelduse, et su skeemi toitesse vüis (mootoritelt) tulla kõrgema pinge impulsse. See seletaks küll.
    Kontrollida võiks nii et
    - sama progejaga kirjutad mõne teise PICi
    - võtad kivi plaadilt ja ühendad vaid progemiseks vajaikud 5 koiba - kui ei siis on tuksis.
    - 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!

  15. #15
    Liige raitl Kasutaja maine on neutraalne
    Liitunud
    02/2004
    Asukoht
    Eestimaa süda
    Postitusi
    348

    Algseade Vs: Palun abi koodi kontrollil

    hmm....müstika...

    1) Lugesin hex faili pickit 2 softiga ära.

    2) Sealsamas programmiaknas muutisn paar väärtust ära ja kirjutasin - toimis

    3) proovisin erase chip teha, ei mõjunud

    4) proovisin mõne väärtuse asendada tühjusega (3FFF) Ei kirjuta?


    Ühesõnaga olemasolevaid väärtusi muuta saan, tühja kohapeale uusi väärtusi kirjutada samuti saan, olemasolevat "mälukohta" tühjendada ei saa!
    Oota! Las ma teen seda natuke paremaks...

+ Vasta teemale

Teema informatsioon

Antud teemat sirvivad kasutajad

Hetkel sirvib antud teemat 1 kasutaja(t). (0 liiget ja 1 külalist)

     

Sarnased teemad

  1. Palun oleks vaja abi.
    suurego poolt foorumis Bassikõlari foorum
    Vastused: 1
    Viimane postitus: 25-03-08, 21:15
  2. Palun abi LED taskulambi ostmiseks
    Kormoran poolt foorumis Elektroonikafoorum
    Vastused: 3
    Viimane postitus: 20-08-07, 20:06
  3. palun abi
    Leimo poolt foorumis Mikroprotsessorite foorum
    Vastused: 1
    Viimane postitus: 10-04-07, 10:41
  4. Palun abi komplekti koostamisel
    rete poolt foorumis Audiofoorum
    Vastused: 15
    Viimane postitus: 18-01-07, 23:19
  5. O: Palun abi ressiiveri ostmisel
    kuuno poolt foorumis Hinnapäringu & ostuabi foorum
    Vastused: 2
    Viimane postitus: 20-11-06, 11:27

Lemmikud

Foorumi reeglid

  • Sa ei või lisada uusi teemasid
  • Sa ei või lisada vastuseid
  • Sa ei või lisada manuseid
  • Sa ei või muuta oma postitusi