How to read analog signals?


Closed Thread
Results 1 to 24 of 24

Hybrid View

  1. #1
    Join Date
    Dec 2008
    Posts
    24


    Did you find this post helpful? Yes | No

    Default

    hey thank you very much ill test it out tommorw. Well one question is this setup detecting a analog voltage then fires rapidfire

  2. #2
    Join Date
    Nov 2007
    Location
    West Covina, CA
    Posts
    219


    Did you find this post helpful? Yes | No

    Default Is it analog?

    You might be seeing a varying pulse width that looks like analog with your meter.

    Hey after playing around and some testing with my new multimeter I found out this, The top pin is always low or ground the middle pin is 1.41 volt When the trigger is not held down, But when you start pressing the trigger it slowly starts decreasing, the more you hold it down the less the voltage gets. When i held the trigger down all the way It was at 0.31-0.30 volts thats afcourse when its down all the the way but even if you press it a little bit the voltage will decrease a little bit and the bottem pin of the 3 is at 1.61 volt all the time and doesent decrease nor increase. This is afcourse on this version of the controller while the other fires off high but not low like this
    From: http://www.picbasic.co.uk/forum/show...4&postcount=27

    Put a scope on it if you have one to make sure.
    Just a thought.
    Louie

  3. #3
    Join Date
    Dec 2008
    Posts
    24


    Did you find this post helpful? Yes | No

    Default

    na pretty sure did research and saw other projects in devlopment in assemply

    here is a pdf to read from it will help a lot I just want to finish this sucka up and play with it in the game =].

    here is the pdf on all the info on the other project i also have it.

    here I downlaoded it on rs since it exceeds ins 200kb's.

    Code:
    http://rapidshare.com/files/204649264/Opensource_Rapidfire_X360_Project2_2.pdf.html

  4. #4
    Join Date
    Dec 2008
    Posts
    24


    Did you find this post helpful? Yes | No

    Default

    small bump

  5. #5
    Join Date
    Dec 2008
    Posts
    24


    Did you find this post helpful? Yes | No

    Default

    still bumping

  6. #6
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    If you post the code that YOU wrote that is giving trouble maybe someone will take a look at it... But who knows...
    Dave
    Always wear safety glasses while programming.

  7. #7
    Join Date
    Dec 2008
    Posts
    24


    Did you find this post helpful? Yes | No

    Default

    Ye i will try to post a code once i get a list of commands or a setup on how to read analog signals I mean I jsut need osme info thats all.

  8. #8
    Join Date
    Mar 2008
    Location
    Gerogetown, Texas
    Posts
    94


    Did you find this post helpful? Yes | No

    Default

    Here is a rapid fire project I made for my son. It has four states, 1) off, 2) 20 shot/sec, 3) 10shots/sec and 4) 5 shots/sec. You control the speed by tapping on the SYNC switch on the 360 controller. I used a 12F683. This will only work for the newer (CG or common ground) controllers.
    The x-box trigger is a pot. when the trigger is pulled the wiper voltage goes from near zero to 3 volts. This circuit changes the pin (GP0) from input (tri-state) to a output with zero volts. There may be a little overkill, I was playing with Darrel's Instant Interrupts

    Code:
    @ __CONFIG   _FCMEN_OFF & _IESO_OFF & _CP_OFF & _CPD_OFF & _BOD_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSCIO 
    
    ANSEL = %00000000	'Make sure Analog functions are turned OFF (should not be needed)
    CMCON0 = 7    'comparators off
    OPTION_REG.7 = 0            'enable weak pullups
    TRISIO = %00100101
    WPU = %00000100     'weak pullup
    OPTION_REG.6 = 0    'falling edge trigger
    
    ;***** VARIABLE DEFINITIONS******************
    
    STATE		Var  byte		;programmed state
    
    '';************************************************************************
    '                    _______
    '             VDD  -|1     8|- VSS
    '             GP5  -|2     7|- GP0 TriggerR out ->
    '             GP4  -|3     6|- GP1
    '             GP3  -|4_____5|- GP2   <- sync
    '
    '
    '
    '
    '*********GPIO pin names**************************************************
    LED			    var		GPIO.5      'led output useing player 4 led
    Sync    		var		GPIO.2      'sync switch input
    TRIGGERR		var		GPIO.0      'rapid trigger output
    '**********************************************************************
    
    INCLUDE "DT_INTS-14.bas"     ; Base Interrupt System
    INCLUDE "ReEnterPBP.bas"     ; Include if using PBP interrupts
    
    ASM
    INT_LIST  macro    ; IntSource,        Label,  Type, ResetFlag?
            INT_Handler   TMR1_INT,   ReloadTMR1,   ASM,  no    ; MUST be first
            INT_Handler   TMR1_INT,  _TriggerOut,   PBP,  yes
            INT_Handler    INT_INT,  _ChangeState,   PBP,  yes
        endm
        INT_CREATE               ; Creates the interrupt processor
    ENDASM
        TMR1H = $A0       ' load timer1 with $00FF
        TMR1L = $B3
    
    T1CON = $00
    @ INT_ENABLE  TMR1_INT            ; enable Timer 1 interrupts
    @ INT_ENABLE   INT_INT     ; enable external (INT) interrupts
    
    ;--- Change these to match the desired interrupt frequency -------------------
    ;--- See http://DarrelTaylor.com/DT_INTS-14/TimerTemplate.html for more Info.
    @Freq       = 20                  ; Frequency of Interrupts in Hz
    @Prescaler  = 1                   ; Timers Prescaler setting
    T1CON = $00                       ; $30 = Prescaler 1:8, TMR1 OFF
    ; $00=1:1, $10=1:2, $20=1:4, $30=1:8 --  Must match @Prescaler value
    
    
    
    State = 0
    
    goto Main
    '***************************************************************************
    ChangeState:       ' Three states rapid fire 20 SPS 10 SPS and off
         pause 10
         if sync = 0 then   ' Switch debounce
             if state = 3 then state = 0
             select case state
              case 0      'twenty shots per sec
                   gosub starttimer
              case 1      'ten shots per sec
                   T1CON = $11
              case 2      ' five shots per second
                   T1CON = $21
              
              case 3   'off
                   T1CON = $00   'timer off
                   TRISIO = %00100101
              end select
             state = state + 1
         endif  
         
    @ INT_RETURN
    
    '***************************************************************************
    TriggerOut:
        TRIGGERR = 0     'Trigger 0
        TRISIO.0 = 0     ' Trigger output the 0
        low LED          'turn on led
        TRISIO.5 = 0     'make led a output
        pause 25         'pause 25 ms
        high led         'turn off led
        TRISIO.0 = 1     'put trigger in tristate mode (float)
        input LED        'put led in tristate mode (PCP method)
    @ INT_RETURN
    '***************************************************************************
    
    Main:
    
    'nothing happening here yet just using interupts for this project
    
    goto main
    ;---[TMR1 reload - interrupt handler]-----------------------------------------
    ASM                               ; Calculate Timer Reload Constant
    ReloadInst  = 8                   ; # of Intructions used to reload timer
      if ((Prescaler == 1)||(Prescaler == 2)||(Prescaler == 4)||(Prescaler == 8))
    MaxCount    = 65536 + (ReloadInst / Prescaler)
    TimerReload = MaxCount - (OSC*1000000/4/Prescaler/Freq)
        if ((TimerReload < 0) || (TimerReload > (65535-ReloadInst)))
            error Invalid Timer Values - check "OSC", "Freq" and "Prescaler"
        endif
      else
          error Invalid Prescaler
      endif
    ENDASM
    
    @Timer1 = TMR1L                   ; map timer registers to a word variable
    Timer1       VAR WORD EXT
    TimerReload  CON EXT              ; Get the External Constant
    TMR1ON       VAR T1CON.0          ; Alias the Timers ON/OFF bit
    
    ;---Reload Timer1------
    ASM
    ReloadTMR1
        MOVE?CT  0, T1CON, TMR1ON     ;  1     stop timer
        MOVLW    LOW(TimerReload)     ;  1     Add TimerReload to the 
        ADDWF    TMR1L,F              ;  1     value in Timer1
        BTFSC    STATUS,C             ;  1/2
        INCF     TMR1H,F              ;  1
        MOVLW    HIGH(TimerReload)    ;  1
        ADDWF    TMR1H,F              ;  1
        MOVE?CT  1, T1CON, TMR1ON     ;  1     start timer
      INT_RETURN
    ENDASM
    ;---Start/Stop controls -----
    StartTimer:
        Timer1  = TimerReload         ; Load Timer
        TMR1ON = 1                    ; start timer
    RETURN
    
    StopTimer:
        TMR1ON = 0                    ; stop timer
    RETURN
    Hope it helps a little

    Dave

Similar Threads

  1. Cleaning up code
    By Tobias in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 2nd December 2009, 07:14
  2. pic18f analog comparator problem
    By david.silaghi in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 6th May 2009, 09:38
  3. SEROUT WORD variable problem
    By Tobias in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 19th April 2009, 11:20
  4. Changing declared variables names on the fly
    By jessey in forum mel PIC BASIC Pro
    Replies: 15
    Last Post: - 16th December 2006, 06:34
  5. analog read
    By swordman in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 12th August 2004, 19:37

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts