Teade

Collapse

Foorumi reeglid.

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

Taimer

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

    Taimer

    Hei, kuskohast alata kui on tahtmine tekitada taimer. Mõte selline, et kui PIC saab toite
    tekib 5 sekundiline loendur heliga (kostab viis piiksu ja viimane on väheke pikem heli) Kui vahepeal ahel katkestatakse algab kogu protsess uuesti. Olemas on kivi PIC12F609 tarkvara, kivile kõrvetamise plaat...tahtmist palju teadmisi vähe. Otsingud netist pole kahjuks selliseid tulemusi andund millega ise hakkama saada.

    #2
    Vs: Taimer

    Kui teadmisi napib saab näiteks siit alustada: http://digital-diy.com/PIC-Microcont...beginners.html Tõsi küll, seal räägitakse PIC18 seeria näitel, mis on veidi parema siseehitusega kui PIC12/PIC16.

    Comment


      #3
      Re: Vs: Taimer

      Mõte oli selline,

      Comment


        #4
        Vs: Re: Vs: Taimer

        Vdd ja Vss vahel võiks 100nF bypass kondensaator olla. GP3 sisend ujub kui S1 on lahti. Aitab 10k takisti GP3 pealt toitesse (siis on avatud S1 korral sisendis loogiline "1"). Sellel kivil on olemas ka sisemised pull-up takistid, siis ei ole välist takistit vaja aga GP3 viigul ainsana sisemine pull-up puudub.

        Võib olla oleks otstarbekam S1 hoopis toiteahelasse panna?

        Comment


          #5
          Vs: Taimer

          Soovitan 12f675 pic. Mugav, hea ja lihtne.
          siin üks töötav näide, 12f675 PIN6(gp1) otsas panin poteka 20k +5 ja ov vahele. Sellega saab määrata aja.
          PIN3(gp4) on fikseeruv on/off lüliti, mis annab +5v sisendile peale.
          Kui lüliti lülitub sisse, siis paneb väljundi PIN2(GP5) aktiivseks(tekkib +5V) väljundisse.
          Ja väljundis on +5V niikaua, kuni potekast etteantud aeg ära tiksub.
          ja sellel lülituse hetkel loetakse takisti pealt tuleva pinge väärtus ja vastavalt siis loetakse aega, 5v = 1,5 min 0v = 0 sek (hetkeks väljund siiski vilksutab ka 0V juures.)
          Programm assembleris on siin:
          64 1024-sest mälust ainult kulus. ( täpselt sama asi tehtud basicus sõi 6x rohkem mälu. Veidi rohkem, kui 1/3 MÄLUST SÕI sama asi basic lihtsalt ära.)
          assembler on 6 korda ökonoomsem mälu õgija kui basic.
          Kuigi Basicus endas on asi väga lühike, aga translaator ei kõlba kuhugile.
          Kui veidi mudida, sisi võid teha mis ajad ise tahad.


          ; 12F675
          ;
          list p=12F675 ;tell assembler what chip we are using
          include "P12F675.inc" ;include the defaults for the chip
          errorlevel 0,-302 ;suppress bank selection messages
          __config _CPD_OFF&_CP_OFF & _BODEN_OFF & _MCLRE_OFF &_PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT


          ;###################
          ; USER RAM ADRESSES
          ;###################
          ;USER RAM 020h - 05Fh
          ;TOTAL 64 x 8 registers

          cblock 0x20 ;start of general purpose registers

          TMRA
          POTLOW
          POTHIGH


          MARKER

          endc ;END of general purpose registers

          ;###############
          ; PROGRAM START
          ;###############
          ORG 0

          BSF INTCON,5 ;SET INTERRUPT READY FOR TMR0 = FF
          BSF INTCON,7 ;WITH-OUT GLOBAL INTERRUPT ENABLED NO TMRO OVERFLOW INT.
          NOP

          GOTO BEGIN ;SRY ADDRESS 0004 IS RESERVED FOR INTERRUPT
          ;###############
          ; INTERRUPT
          ;###############
          ORG 4 ;INTERRUPT START ADDRESS

          INCF TMRA,F ;INCREASE TMRA+1=TMRA

          BCF INTCON,2 ;PREPARE FOR NEXT TMR0 = FF
          BSF INTCON,7 ;ALSO ENABLE AGAIN GLOBAL INTERRUPT

          MOVLW H'03' ;00 = NOT ANY IN ACTIVE
          XORWF TMRA,W ;CHK IF POTHIGH REG EQU 00
          BTFSS STATUS,Z ;TEST RESULT OF XOR
          RETFIE

          CLRF TMRA


          ;=================================================
          MOVLW H'00' ;00 = NOT ANY IN ACTIVE
          XORWF POTLOW,W ;CHK IF POTHIGH REG EQU 00
          BTFSC STATUS,Z ;TEST RESULT OF XOR
          GOTO PLW

          DECF POTLOW,F
          RETFIE

          PLW MOVLW H'00' ;00 = NOT ANY IN ACTIVE
          XORWF POTHIGH,W ;CHK IF POTHIGH REG EQU 00
          BTFSC STATUS,Z ;TEST RESULT OF XOR
          GOTO FINAL

          DECF POTHIGH,F

          MOVLW H'FF' ;
          MOVWF POTLOW ;
          ;=================================================
          RETFIE ;RETURN FROM INTERRUPT

          FINAL BTFSC MARKER,2
          BCF GPIO,5 ;SET TEMP INDICATOR FOR IN1

          RETFIE
          ;###############
          ; BEGIN
          ;###############
          BEGIN CLRF GPIO ;INIT GPIO

          CLRF TMRA
          CLRF MARKER

          CLRF POTLOW
          CLRF POTHIGH

          MOVLW B'00000111' ;TURN OFF ANALOG REFERENCE
          MOVWF CMCON ;NB! IMPORTANT FOR I/O NORMAN USE

          BSF STATUS,RP0 ;set RP0 for RAM page 1

          MOVLW B'11011111' ;SET GP 0-4 INPUTS, GP 5 OUTPUT
          MOVWF TRISIO ;

          MOVLW B'11100010' ;SET GP1 - ANALOG INPUT
          MOVWF ANSEL ;ALSO FOSC IN RC SET HERE

          MOVLW B'11010110' ;TMR0 IS INTERNAL TIMER not MAX DELAY
          MOVWF OPTION_REG

          BCF STATUS,RP0 ;set RP0 for RAM page 0

          ;###############
          ; MAIN
          ;###############
          MAIN BTFSC GPIO,4
          GOTO NEXT

          BCF GPIO,5
          BCF MARKER,2

          GOTO MAIN

          NEXT BTFSC MARKER,2
          GOTO MAIN

          MOVLW B'10000111' ;conf adcon for GP4 volt read ALSO SET GO DONE HERE 1
          MOVWF ADCON0

          ADCRES1 BTFSC ADCON0,1 ;CHECK IF ADC CONVERSION IS DONE
          GOTO ADCRES1

          BSF STATUS,RP0 ;set RP0 for RAM page 1
          MOVF ADRESL,W
          BCF STATUS,RP0 ;set RP0 for RAM page 0
          MOVWF POTLOW
          MOVF ADRESH,W
          MOVWF POTHIGH

          BSF MARKER,2
          BSF GPIO,5

          GOTO MAIN
          ;=================================================



          END
          viimati muutis kasutaja ahelet; 25 m 2011, 22:03. Põhjus: tuli meelde

          Comment


            #6
            Vs: Taimer

            Peab olema programmaator, see sul vist on.
            Assembleri jaoks on protsessori pdf manualis kõik kirjas, ole ainult mees ja loe.
            Siis läheb sul vaja editori koos translaatoriga, Mplab microchipi oma sobib väga edukalt.
            võib kirjutada ka suias teksti redaktoris notepad ja kasutada MPASMWIN.exe vanemat versiooni, näiteks 5,01.
            See töötab ilma Mplabita ka. Siis vajalik ka eraldi INI fail, need on Mplab sees kataloogis kõik olemas.
            Koreerid samasse direktori , kus MPASMWIN.exe ja sinuprogram.asm, mida teksti redaktoris kirjutad.
            Lisaks läheb vaja päris hulk kannatust ja palju testimisi ja pole ka paha netist materjale lugeda.
            Ja varsti hakkab pisikesi asjakesi tööle saama ka.
            Vahel on ka teiste tehtud näidistest abi.
            viimati muutis kasutaja ahelet; 25 m 2011, 21:58.

            Comment


              #7
              Vs: Taimer

              Ah jaa, Oshoni ja Isis simulaatorid on ka heaks abivahendiks, kuid need on mõlemad omade bugidega.
              Absoluutselt head simulaatorit ei ole olemas kahjuks.
              Aga enamuses aitavad simulaatorit palju asju kiiremini ära lahendada ja protsessori sisemusest arusaamine ka areneb.

              Comment


                #8
                Vs: Taimer

                Viivituste arvutamisel on abi sellest lehest:

                ja pieso piuks teeb kõvemat häält kui ta kahe väljundi vahele ühendada - ning siis kui üks on kõrge, teine madalaks lülitada.
                MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                Comment


                  #9
                  Vs: Taimer

                  Päris otse kõike eestikeelde ka ei tasu tõlkida muidu tuleb kokku selline käkk nagu eestikeelne windows. See "translaator" on ikka compiler. "editor koos translaatoriga" on IDE (Integrated development environment).
                  Simulaatorid on nii nagu nimigi viitab, simulandid. Pole halli aimu ka välisest raudvarast lisaks kubisevad vigadest. Kaasaegsemad prosed omavad debug liideseid kus saab koodi samm sammult juba jälgida ja teha samu asju nagu simulaatoris ainult et need juhtuvad juba reaalsel plaadil ja reaalse raudvaraga mis tähendab et töötavad ka hiljem. Muidugi asembler ja 12 seeria pic on PÄRIS vana, say 10-20 aastat vist.
                  Modelleerimises ja tootmises kehtivad:
                  1. Avariikindel vooluring lühistab kõik teised.
                  2. Transistor, millel on kiiresti toimiv kaitse, säästab kaitset, sulades kõigepealt ise.

                  Comment


                    #10
                    Re: Vs: Taimer

                    tänud,
                    kirjutan natuke ka milleks seda vajan. Tegemist koerte agility (takistusriba) rajal on pausi laud kus koer peab püsima 5 sekundit. Iga sekund kõlab heli ja kui aeg saab täis kõlab pirin, ehk koerjajuht saab anda koerale loa laualt maha hüpata. Kui koer enda tarkusest maha hüppab katkeb aeg ja koer peab uuesti lauale hüppama ja harjutuse kordama.

                    selline värk siis.

                    Comment


                      #11
                      Vs: Taimer

                      viiviseid saab ka teisiti teha.
                      Siin ei jookse asi ühe viivise juures kinni, võib kasvõi sada viivist teha, mis kõik käivad üheaegselt ja samal ajal veel teha mida iganes.

                      Aga too standartne viivitaja on kohe kinni ühes kohas.
                      Tahad näiteks saada viivitust 1minut ja on kinni, terve minuti mitte midagi muud teha ei saagi.

                      Või näiteks mul on 23 sisendit ja tahan et alla 0,3 sek signaali peale ei tõmmeldaks, siin jätkatakse 22 sisendi kontrollimist, kui 23 sisend on saanud signaali ja 0,3 sek viivis jookseb.
                      võib kasvõi 23 erinevat viivist korraga jooksta erinevate aegadega 0,3 sek sees samaaegselt ja igat neist loendatakse eraldi vastavalt tema ajale.

                      Aga tahaks näha, kuida seda selle standartse viivitajaga tehakse.

                      ;##########################
                      ; IN FILTER 0,3 SEK ROUTINE
                      ;##########################
                      TCHKIN1 BTFSC FGPIO,4 ;CHK GSM ANALOG OUT RESLUT
                      GOTO STCHKIN1
                      MOVF TMRA,W ;COPY TMR0 TO W
                      ADDLW D'7' ;W + 7 =W
                      MOVWF TIN1 ;COPY W TO TGSM
                      GOTO DCHKIN1
                      STCHKIN1 MOVF TMRA,W ;COPY TMRB TO W
                      SUBWF TIN1,W ;ISNT TMRB NOW EQU MATIM
                      BTFSC STATUS,0 ;CHK THIS
                      GOTO DCHKIN1 ;IF NO, GO AHEAD
                      BSF FGPIO,1 ;IF TIME REACHED, ACTIVATE GSM TEMP,0
                      viimati muutis kasutaja ahelet; 28 m 2011, 16:16. Põhjus: trükiviga

                      Comment


                        #12
                        Vs: Taimer

                        555 analoog mikroskeem on veelgi vanem ja ikka tehakse temaga kuni 5 min viiviseid.
                        vana hea asi võib ka 100 aastat töötada ja ikka kasutatakse.
                        mu vana mobiil on ka kaks uut üle elanud ja tema ikka töötab, aga uued on juba prügimäel.

                        Comment


                          #13
                          Vs: Taimer

                          Inglise keelne delay on eesti keeles viide mitte viivis (mis on pigem raha või võlaga seotud).

                          Ma arvan et selle krüptilise assemblerkoodi loopimisega teemaalgataja oluliselt targemaks ei saa.

                          Comment


                            #14
                            Vs: Taimer

                            Programmi saaks oluliselt lihtsamaks, kui kasutada summerit.
                            Siis tuleks lihtsalt võtta algatuseks mõni 2 valgusdioodi vilgutamise näidisprogramm ja seda veidi muuta.
                            MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                            KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                            Comment


                              #15
                              Vs: Taimer

                              .. ja viivituse ajal võib ju kontrollida katkestust.
                              MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                              KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                              Comment

                              Working...
                              X