[TUTORIAL] Instalar Rapid Fire Paso a Paso

1, 2, 3, 4
reaf escribió:
[NisteR] escribió:deberian banear a todos los que usan esto, loq mas gracia mace es q la gente qusa esto se cree buena jajajaja


Seguro que acabas del modificar el mando xDDDD.

seguro, lo q conseguira la gente con esto es joder el online y juegos como el call of duty, deberian banear a todo el mundo q usara esto en el online, vale q lo agas con los colegas cada uno con su mando para pasar caxondeo, pero no mola nada ver como un tio q es un pakete t mata con un fusil en el call of duty xq tiene el puto mando este, luego lo ves q ni se esconde bien, ni se mueve bien, ni etc... pero claro el tio t mata xq tiene el mando este modificado... no entiendo q diferencia ay entre esto y usar chetos como era el caso de la psp, recuerdo todo lo q se discutia xq la gente volvia las escopetas como metralletas en el medal of honor y al final xaparon el post, sin embargo este q es en realidad lo mismo xo en vez de usar chetos modificas el mando y usa un cheto x ti seguira aki para q la gente modifike su mando solo para ser mejor q otros aciendo trampas en el online...

PD: no entiendo como pueden dejar que este post siga adelante que claramente va a perjudicar el online y a los jugadores que juegan al live ya que acer esto no tiene otra intencion q la de acer trampas.
[NisteR] escribió:PD: no entiendo como pueden dejar que este post siga adelante que claramente va a perjudicar el online y a los jugadores que juegan al live ya que acer esto no tiene otra intencion q la de acer trampas.

cada quien tiene su opinion.. en mi caso si lo hice fue nada mas por curiosidad,(como mencione no me gustan los call of duty) pero creo que un moderador ya dio su aprobacion para este post. no se esta rompiendo ninguna regla asi que a pesar de muchos este hilo va a seguir hasta que los moderadores digan lo contrario.

ademas si juegas tu los call of duty y te topas con este tipo de controles, te recomiendo que mandes feedback al jugador,a los que reportan por esto los banean del juego en linea del cod.

y no te sorprendas de mas por que ahi muchas paginas que se dedican a hacer este tipo de controles desde hace mucho tiempo. busca en el google evil controller y veras lo que te comento.
ademas tu comentas que esto se carga el juego en linea........ que crees que va a pasar una ves que la 360 sea rota por completa (y ya empeso su proceso ) creeme que va aver gente que quiera jugar en linea con su consola hackeada para hacer mas trampas de las que te imaginas en liv3..

en fin cada quien puede poner su comentario en estos foros pero te vuelvo a comentar,los moderadores permitieron seguir con el hilo asi que ........................................................

saludos
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
Hola:

He pasado el tutorial de este tema a PDF para que sea poortable y lo tengan todo el mundo.

Descargar

Si lo deseas, puedes publicarlo en el primer tema para que lo sepan.

Saludo.
REHome escribió:Hola:

He pasado el tutorial de este tema a PDF para que sea poortable y lo tengan todo el mundo.

Descargar

Si lo deseas, puedes publicarlo en el primer tema para que lo sepan.

Lo pondré, pero recuerda que el tutorial es mio, debes ponerlo.

Saludo.
cervantes escribió:bien lo que mencionas en la placa matrix si se ocupa tan cual viene en el diagrama, lo que comente que es ocional es un capacitor de valor 0.1uf pero tanto la resistencia de 330 ohm y la 1n4148 se ocupan para no quemar el led saludos


Ok, muchas gracias.

Saludos
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
andresete escribió:
REHome escribió:Hola:

He pasado el tutorial de este tema a PDF para que sea poortable y lo tengan todo el mundo.

Descargar

Si lo deseas, puedes publicarlo en el primer tema para que lo sepan.

Lo pondré, pero recuerda que el tutorial es mio, debes ponerlo.

Saludo.


Es que el tutorial es el tuyo, fíjate en la portada que se ve tu nick. Al final, en la última página también te lo dice que es tuyo y en enlace de este foro aquí. No te diste cuenta, ejjejeje :)

Por cierto, buen tutorial.
Bueno, pues ya esta, os dejo un par de imagenes para que veais como lo he dejado, he puesto el zocalo para el pic en la parte superior del mando para tener mejor acceso a el y no tener que abrir el mando para cualquier modificacion del hex.

Imagen

Imagen
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
Muy buena campeón. ¿Por dentro te quedó bien como el tutorial?

Saludo.
Te ha quedado muy bien, podrias poner alguas fotos de dentro del mando para verlo mejor.

Un saludo.
Bueno, ahi las teneis, no tienen mucha calidad ya que estan hechas con el movil ,que necesita jubilacion por cierto.Una vez montado los cables quedan encima del zocalo recogiditos. El cable que he usado es un cable ide,ya que es fino y resistente ,por si al cerrar el mando pillo alguno con las tapas.

Imagen

Imagen


Ummh, la 2A imagen no se ve muy bien, a ver si arreglo lo del lector de tarjetas y puedo subirlas con mas calidad.

Saludos.
narwin escribió:Bueno, ahi las teneis, no tienen mucha calidad ya que estan hechas con el movil ,que necesita jubilacion por cierto.Una vez montado los cables quedan encima del zocalo recogiditos. El cable que he usado es un cable ide,ya que es fino y resistente ,por si al cerrar el mando pillo alguno con las tapas.


bien te ha quedado muy guapo. pero que esquemas has usado. por lo que veo usaste el diagrama de solo un triger?
una pregunta mas, el capacitor que has usado es de 0.1uf?? por que los que yo consegui son diferentes y  se me hace que me dieron los equivocados [+risas] . otra pregunta mas , lo probaste ya de que funcione y que hex usaste el del primer post o el que postee yo.lo pregunto por que si usaste el hex de andresete no era necesario el capacitor pero si utilizaste el que subi yo entonces lo pusiste bien

saludos
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
El condensador es para evitar posibles ruidos al circuito.
Buenas Cervantes, los esquemas que he usado son los que pusistes tu, para el matrix con las resistencias y el capacitor,que es de 1uf 100v, lo he probado en una partida privada y cerrada osea que estubiera solo yo y funciona , he usado el hex que subiste tu, por eso monte el capacitor.
Lo he montado de tal manera que la resistencia de 1k y la de 1n4148 estan soldadas empalmandolas entre si directamente a la patilla del zocalo y cubiertas con funda termoretractil para que no provoquen ningun corto con el resto de patillas.

Saludos
perfecto narwin, me da gusto que ya tengas tu control para divertirte con tus amigos en partidas locales. en este momento estoy probando un hex que tiene seis modos de disparo + apagado. una ves que acabe de testear lo subo..
eres de españa narwin???
saludos
Hola

Despues de muchas peleas con mis 3 o 4 te20 consegui echar a andar uno despues de tanto tiempo ok pero me surge un problema

Y es que el winpic me reconoce el pic y me lo programa segun el perfectamente pero una vez que termina de programar le doy a verificar y me da un error es normal?

Con el ic-prog me pasa exastamente lo mismo el error de este es 0001h

Saludos
Lo del error al verificar es normal, a mi me pasa lo mismo, pero ya lo comentan en el post, funciona sin problemas.
Si soy español cervantes y por supuesto que esto es para echar unas partidas privadas y cerradas con mis amigos, no tengo ninguna intencion de usarlo en el live, aunque las partidas esten llenas de rapid fires.
Esto es mas por hobby y pasar el rato trasteando, que las tardes de verano sin pasta son muy aburridas.

Saludos.
Hola.

Acabo de entras despues de un tiempecillo de vacas y por fin veo el rapid fire aqui. Yo ya lo conocía pero no me atrevía postearlo pero me alegro de que andresete halla sido capaz, así aportare la información que tengo

Comentar que yo lo tengo y el que diga que es de chetos es porque no se lo puede montar. Yo de hecho e vendido mandos, montado el rapid fire y la verdad que a la gente le molesta pero mas molesta cuando tu estas jugando y te viene un guire y te pega una ráfaga.

En cuanto al Bdh.hex si es verdad que dispara a 10 sps por segundos en Cod 5 y sin necesidad del capacitor es genial. Yo tengo el archivo .hex pero pensaba que estaba a 7 sps que es la tasa mínima para ser totalmente indetectable. En cuanto al Gow 2 creo que también la tasa minima es de 7.7 sps. Aun asi en ebay y otras paginas se venden con tasas superiores. Es por eso que esta bien que se poestee el código aqui, para que la gente que sepa programar pueda, por decirlo de alguna manera, sobrepasar el limite.

Bueno señores me alegro de que se halla abierto este hilo.

P.D: Para los que digan que esto es de chetos y tramposos por que no tienen uno yo se lo vendo ajjajaaj.

Saludos

Se me olvidaba, alguien sabe donde comprar los pic 12f683 en españa? yo los compro en inglaterra
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
Hola:

Lo puedes comnprar aquí, no tienen el catálogo pero ellos te los puede conseguir si son varios PIC.
http://msebilbao.com/tienda/index.php

Donde se suele comprar PIC directamente es desde la web del fabricante. Se recomienda comprar muchos si quieres que los gastos de envío valga la pena pagarlos.
http://www.microchipdirect.com/

¿Tienes intención de modificar algo en el código?

;   XBOX360 Rapidfire / Sleeperfire Opensource Project                *
;   on the PICmicro PIC12F683. This file contains the basic code      *
;   building blocks to build upon.                                    *
;                                                                     *
;                                                                     *
;   Refer to the MPASM User's Guide for additional information on     *
;   features of the assembler (Document DS33014).                     *
;                                                                     *
;   Refer to the respective PICmicro data sheet for additional        *
;   information on the instruction set. REPEAT: READ the #$%^&*&*ing  *
;   datasheet. Its all in there, so stop wasting others time by asking*
;   questions already asnwered.If you dont understand the datasheet   *
;   then by all means ask the question.                               *
;**********************************************************************
;                                                                     *
;    Filename:       xxx.asm                                           *
;    Date:     Now                                                    *
;    File Version:                                                    *
;                                                                     *
;    Author: Hazer                                                    *
;    Company:                                                         *
;                                                                     *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Files required:  p12F683.inc                                     *
;                                                                     *
;                                                                     *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Notes:                                                           *
;                                                                     *
;                                                                     *
;                                                                     *
;                                                                     *
;**********************************************************************

   list      p=12F683        ; list directive to define processor
   #include <p12F683.inc>    ; processor specific variable definitions

   errorlevel  -302          ; suppress message 302 from list file

   __CONFIG   _FCMEN_OFF & _IESO_OFF & _CP_OFF & _CPD_OFF & _BOD_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSCIO

;***** VARIABLE DEFINITIONS******************
w_temp        EQU     0x70        ; variable used for context saving
status_temp   EQU     0x71        ; variable used for context saving

FLAGS      EQU      0x20      ;software state register
PULSER      EQU      0x21      ;pulse on counter
DWELLTIMER   EQU      0x22      ;pulse off counter
STATE      EQU      0x23      ;programmed state
BUTTONHOLD   EQU      0x24
FREQR      EQU      0x25      ;frequency value
TEMP1      EQU      0x26
TEMP2      EQU      0x27
PULSEL      EQU      0x28
DWELLTIMEL   EQU      0x29
TEMP5      EQU      0x2A
LEDBLINK   EQU      0x2B
TEMP3      EQU      0x2C



;*******bits in FLAGS register***********
PULSEONR      equ      0
PULSEONL      equ      1
TRIGOUT         equ      2
LEDHI         equ      3
STATECHANGE      equ      4


;*******bits in STATE register***********
RIGHTACTIVE      equ      0
LEFTACTIVE      equ      1

;*********GPIO pin names*****************
LEDL         equ      5
LEDR         equ      4
BUTTONR         equ      2
BUTTONL         equ      3
TRIGGERR      equ      0
TRIGGERL      equ      1


;**********Speed settings: change these to change speed (0x05-0xFF)
FIRERATE1      equ      0x2F
FIRERATE2      equ      0x16
FIRERATE3      equ      0x12
FIRERATE4      equ      0x0F



;**********************************************************************
   ORG     0x000             ; processor reset vector
   goto    main              ; go to beginning of program
   

   ORG     0x004             ; interrupt vector location
   movwf   w_temp            ; save off current W register contents
   movf   STATUS,w          ; move status register into W register
   movwf   status_temp       ; save off contents of STATUS register

         ;Take a good note here. OSC is left at default 4MHz.
         ; We are running at 1MHz instruction cycle, or 1 micro second
         ;Timer 2 is prescaled 1:4 and compared (PR2) to 250.
         ; we now have hardware interupt that falls every 1ms exactly
         ;within limitation of osctune. Main code is inconsequential.
         ;PULSE and DWELL values control the signals precisely.
         ;All pulse logic is switched within the few microseconds to
         ;service the interupt routine. DO NOT modify the ISR
         ;with any kind of 'wait' or 'loop'. If you want to trigger
         ; timed events do so by setting an open FLAG bit and have the
         ;event done in the main loop.


   btfss   PIR1, TMR2IF      ;timer 2 int happened
   retfie

;**************** LED blinking *********************************************
                        ;Our main routine will turn the flag bit
                        ;LEDON on or off. The 10ms pulse is a duty cycle
                        ;for the code to work with both CG and
                        ;matrix controllers.

BlinkLed   
   btfss   FLAGS, LEDHI
   goto   LedLow
   decfsz   LEDBLINK, f         ;if pulse is active, count down 10ms
   goto   RightLED
   movlw   0x0A
   movwf   LEDBLINK
   bcf      FLAGS, LEDHI      ;10ms done, turn off LEDHI bit
   goto   RightLED
LedLow
   decfsz   LEDBLINK, f         ;LEDLO time, count down 10ms
   goto   RightLED
   movlw   0x0A
   movwf   LEDBLINK
   bsf      FLAGS, LEDHI      ;10ms done, turn LEDHI bit on

RightLED
   btfsc   STATE, RIGHTACTIVE   ;is RF on?
   goto   OutputRightLED
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, LEDR      ;tristate LED
   bcf      STATUS, RP0         ;bank 0
   goto   LeftLED
OutputRightLED
   btfsc   FLAGS, LEDHI      ;if ledhi true,
   bsf      GPIO, LEDR         ;turn output hi
   btfss   FLAGS, LEDHI      ;if ledhi flase,
   bcf      GPIO, LEDR         ;turn led output lo
   bsf      STATUS, RP0         ;bank 1
   bcf      TRISIO, LEDR      ;turn output on
   bcf      STATUS, RP0         ;bank 0

LeftLED
   btfsc   STATE, LEFTACTIVE   ;is RF on?
   goto   OutputleftLED
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, LEDL      ;tristate LED
   bcf      STATUS, RP0         ;bank 0
   goto   RightTrigger
OutputleftLED
   btfsc   FLAGS, LEDHI      ;if ledhi true,
   bsf      GPIO, LEDL         ;turn output hi
   btfss   FLAGS, LEDHI      ;if ledhi flase,
   bcf      GPIO, LEDL         ;turn led output lo
   bsf      STATUS, RP0         ;bank 1
   bcf      TRISIO, LEDL      ;turn output on
   bcf      STATUS, RP0         ;bank 0

;**************** Right trigger logic***************************************   
RightTrigger
   btfsc   STATE, RIGHTACTIVE   ;is RF on?
   goto   ActiveR
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, TRIGGERR   ;output off
   bcf      STATUS, RP0         ;bank 0   
   goto   LeftTrigger

ActiveR
   btfss   FLAGS, TRIGOUT      ;controllertype
   bcf      GPIO, TRIGGERR      ;determines
   btfsc   FLAGS, TRIGOUT      ;output state
   bsf      GPIO, TRIGGERR   
   btfss   FLAGS, PULSEONR      ;is pulse active?
   goto   OffstateR
   decfsz   PULSER, f         ;if pulse is active, count down 10ms
   goto   LeftTrigger
   bcf      FLAGS, PULSEONR      ;10ms is over, clear flags and
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, TRIGGERR   ;tristate output
   bcf      STATUS, RP0         ;bank 0   
   movf   FREQR, w         ;and reset pulse time.
   movwf   PULSER
   goto   LeftTrigger

OffstateR
   decfsz   DWELLTIMER, f      ;count down dwell time to next pulse
   goto   LeftTrigger
   bsf      FLAGS, PULSEONR      ;if dwell is done turn on outputs
   bsf      STATUS, RP0         ;bank 1
   bcf      TRISIO, TRIGGERR   ;and reset pulse time
   bcf      STATUS, RP0         ;bank 0   
   movf   FREQR, w         ;from frequency value
   movwf   DWELLTIMER

LeftTrigger
   btfsc   STATE, LEFTACTIVE   ;is RF on?
   goto   ActiveL
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, TRIGGERL   ;output off
   bcf      STATUS, RP0         ;bank 0   
   goto   EndInterupt

ActiveL
   btfss   FLAGS, TRIGOUT      ;controllertype
   bcf      GPIO, TRIGGERL      ;determines
   btfsc   FLAGS, TRIGOUT      ;output state
   bsf      GPIO, TRIGGERL   
   btfss   FLAGS, PULSEONL      ;is pulse active?
   goto   OffstateL
   decfsz   PULSEL, f         ;if pulse is active, count down 10ms
   goto   EndInterupt
   bcf      FLAGS, PULSEONL      ;10ms is over, clear flags and
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, TRIGGERL   ;tristate output
   bcf      STATUS, RP0         ;bank 0   
   movf   FREQR, w         ;and reset pulse time.
   movwf   PULSEL
   goto   EndInterupt

OffstateL
   decfsz   DWELLTIMEL, f      ;count down dwell time to next pulse
   goto   EndInterupt
   bsf      FLAGS, PULSEONL      ;if dwell is done turn on outputs
   bsf      STATUS, RP0         ;bank 1
   bcf      TRISIO, TRIGGERL   ;and reset pulse time
   bcf      STATUS, RP0         ;bank 0
   movf   FREQR, w         ;from frequency value
   movwf   DWELLTIMEL

EndInterupt
   bcf      PIR1, TMR2IF

   movf    status_temp,w     ; retrieve copy of STATUS register
   movwf   STATUS            ; restore pre-isr STATUS register contents
   swapf   w_temp,f
   swapf   w_temp,w          ; restore pre-isr W register contents
   retfie                    ; return from interrupt


;*************************************SUBROUTINES**********************************

Wait10ms
   clrf   TEMP2
   movlw   0x0D
   movwf   TEMP1            ;rough 10ms timer for button debounce.

Loop1
   decfsz   TEMP2, f         ;count down 256*3=768 cycles
   goto   Loop1
   decfsz   TEMP1, f         ;count down 768*13=9986 cycles
   goto   Loop1
   return
   
         ;*************************************************************
ReadEE
   bsf     STATUS    , RP0      ;Bank1
   movlw   0x02
    movwf   EEADR
    bsf     EECON1    , RD      ;start read
    movf    EEDAT    , W
   bcf     STATUS    , RP0      ;Bank0
    return
         ;*************************************************************

WriteEE
   bsf     STATUS    , RP0
   movwf   EEDAT
   movlw   0x02
   movwf   EEADR
   bsf      EECON1,WREN       ;Enable write
   bcf      INTCON, GIE       ;Disable INTs
   btfsc   INTCON, GIE       ;See AN576
   goto   $-2
   movlw    0x55             ;Unlock write
   movwf    EECON2
   movlw    0xAA
   movwf    EECON2
   bsf    EECON1, WR          ;Start the write
WaitForEEWrite
   btfsc   EECON1, WR         ;wait for hardware to clear (done writing)
    goto    WaitForEEWrite
   bcf     STATUS    , RP0      ;Bank0
   bsf    INTCON, GIE       ;Enable INTS
    return

;**********************************************************************************
;**********************************************************************************
;**********************************************************************************
main

   clrf   GPIO
   clrf   FLAGS            ;clear outputs and code status register
   movlw   0x07
   movwf   CMCON0            ;comparators off
   bsf      STATUS, RP0         ;bank 1
   movlw   0x0F            ;start with 0-3 inputs (ADC read)
   movwf   TRISIO            ;pin 0 & 1 & 5 out, all other inputs
   movlw   0x51            ;Fosc/16, pin 0 analog
   movwf   ANSEL            ;Right trigger is analog input
   movlw   0x04
   movwf   WPU               ;enable week pullups
   bcf      OPTION_REG, 7      ;enable all week pullups
   bcf      STATUS, RP0         ;bank 0

   movlw   0x01            ;Left just, Vdd, channel 0
   movwf   ADCON0            ;module on.
   movlw   0x10
   movwf   TEMP1
Wait4ADC
   decfsz   TEMP1, f
   goto   Wait4ADC         ;acquisition time
   bsf      ADCON0, 1         ;start ADC
   btfsc   ADCON0, 1
   goto   $-1               ;wait for conversion to be done
   movlw   0x40            ;about 0.5V from 2V ref
   subwf   ADRESH, w         ;if f > W, C=1
   btfsc   STATUS, C         ;ie- if trigger > 0.5V, then matrix
   bsf      FLAGS, TRIGOUT      ;matrix config sources (output high)
   bsf      STATUS, RP0         ;bank 1
   movlw   0x0C            ;restore pin IO
   movwf   TRISIO   
   clrf   ANSEL            ;all digital now
   bcf      STATUS, RP0         ;bank 0

   movlw   0x0A            ;start with 10ms pulse width
   movwf   LEDBLINK         ;for the LEDs
   movlw   FIRERATE1         ;this will get overwritten,
   movwf   PULSER            ; but start with a default value
   movwf   PULSEL
   movwf   DWELLTIMER
   movwf   DWELLTIMEL
   call   ReadEE            ;get state value
   movwf   STATE

   movlw   0x01
   movwf   T2CON            ;timer 2, prescale 1:4, no postscale
   bsf      STATUS, RP0         ;bank 1
   movlw   0xFA
   movwf   PR2               ;setup 1ms hardware interupt
   bsf      PIE1, TMR2IE      ;enable timer2 interupt
   bcf      STATUS, RP0         ;bank 0
   bsf      T2CON, TMR2ON      ;turn on timer2
   movlw   0xC0
   movwf   INTCON            ;turn on interupts globally
   goto   InitState         ;get first firerate value

;******MAIN LOOP***************
Start
TestLeft
   btfsc   GPIO, BUTTONL
   goto   TestRight         ;Test for left button press
   call   Wait10ms
   btfsc   GPIO, BUTTONL      ;button is down for 10ms
   goto   TestRight
ReleaseLeft
   btfss   GPIO, BUTTONL      ;wait for button release         
   goto   ReleaseLeft
   call   Wait10ms
   btfss   GPIO, BUTTONL      ;wait for button release         
   goto   ReleaseLeft

   movlw   0x02
   xorwf   STATE, f         ;toggle left trigger
   call   WriteEE            ;store state

TestRight
   btfsc   GPIO, BUTTONR
   goto   Start
;   goto   DisplayState      ;Test for right button press
   call   Wait10ms
   btfsc   GPIO, BUTTONR      ;button is down for min 10ms
   goto   Start
;   goto   DisplayState
   movlw   0xC8
   movwf   BUTTONHOLD         ;setup for 2 second hold
First2seconds
   call   Wait10ms
   btfsc   GPIO, BUTTONR      ;button is down for more than 10ms
   goto   ReleaseRight
   decfsz   BUTTONHOLD, f
   goto   First2seconds
   movlw   0xC8
   movwf   BUTTONHOLD         ;setup for 2 second hold
Second2seconds
   call   Wait10ms
   btfsc   GPIO, BUTTONR      
   goto   ReleaseRight
   decfsz   BUTTONHOLD, f       
   goto   Second2seconds      ;button down for 4 seconds, change firerate
   
NextState
   movlw   0x40
   addwf   STATE, f         ;change firerate state
InitState                  ;begin test for
   btfsc   STATE, 7         ;state 1 or 2
   goto   State3
   btfsc   STATE, 6
   goto   State2
State1
   movlw   FIRERATE1            ;state 1
   movwf   FREQR
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop01
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop01
   bsf      STATE, RIGHTACTIVE      ;led on
   bsf      FLAGS, STATECHANGE      ;notify a state change
   goto   ReleaseRight

State2
   movlw   FIRERATE2         ;state 2
   movwf   FREQR
   bcf      STATE, RIGHTACTIVE      ;blink twice, led off
   movlw   0x0A
   movwf   TEMP3
Loop02
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop02
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop03
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop03
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop04
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop04
   bsf      STATE, RIGHTACTIVE      ;led on
   bsf      FLAGS, STATECHANGE      ;notify a state change
   goto   ReleaseRight

State3
   btfsc   STATE, 6
   goto   State4
   movlw   FIRERATE3         ;state 3
   movwf   FREQR
   bcf      STATE, RIGHTACTIVE      ;blink 3 times, led off
   movlw   0x0A
   movwf   TEMP3
Loop05
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop05
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop06
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop06
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop07
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop07
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop08
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop08
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop09
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop09
   bsf      STATE, RIGHTACTIVE      ;led on
   bsf      FLAGS, STATECHANGE      ;notify a state change
   goto   ReleaseRight

State4
   movlw   FIRERATE4         ;state 4, 22ms cycle
   movwf   FREQR
   bcf      STATE, RIGHTACTIVE      ;blink 4 times, led off
   movlw   0x0A
   movwf   TEMP3
Loop10
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop10
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop11
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop11
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop12
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop12
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop13
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop13
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop14
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop14
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop15
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop15
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop16
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop16
   bsf      STATE, RIGHTACTIVE   ;led on
   bsf      FLAGS, STATECHANGE   ;notify a state change

ReleaseRight
   btfss   GPIO, BUTTONR      ;wait for button release         
   goto   ReleaseRight
   call   Wait10ms
   btfss   GPIO, BUTTONL      ;wait for button release         
   goto   ReleaseRight
   btfsc   FLAGS, STATECHANGE   ;test for button tap or state change
   goto   Continue01
   movlw   0x01
   xorwf   STATE, f         ;toggle left trigger if button tap
Continue01
   bcf      FLAGS, STATECHANGE
   call   WriteEE            ;store state
   goto   Start




   
; initialize eeprom locations

   ORG   0x2100
   DE   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07


   END                       ; directive 'end of program'




Saludo.
REHome escribió:Hola:

Lo puedes comnprar aquí, no tienen el catálogo pero ellos te los puede conseguir si son varios PIC.
http://msebilbao.com/tienda/index.php

Donde se suele comprar PIC directamente es desde la web del fabricante. Se recomienda comprar muchos si quieres que los gastos de envío valga la pena pagarlos.
http://www.microchipdirect.com/

¿Tienes intención de modificar algo en el código?

;   XBOX360 Rapidfire / Sleeperfire Opensource Project                *
;   on the PICmicro PIC12F683. This file contains the basic code      *
;   building blocks to build upon.                                    *
;                                                                     *
;                                                                     *
;   Refer to the MPASM User's Guide for additional information on     *
;   features of the assembler (Document DS33014).                     *
;                                                                     *
;   Refer to the respective PICmicro data sheet for additional        *
;   information on the instruction set. REPEAT: READ the #$%^&*&*ing  *
;   datasheet. Its all in there, so stop wasting others time by asking*
;   questions already asnwered.If you dont understand the datasheet   *
;   then by all means ask the question.                               *
;**********************************************************************
;                                                                     *
;    Filename:       xxx.asm                                           *
;    Date:     Now                                                    *
;    File Version:                                                    *
;                                                                     *
;    Author: Hazer                                                    *
;    Company:                                                         *
;                                                                     *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Files required:  p12F683.inc                                     *
;                                                                     *
;                                                                     *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Notes:                                                           *
;                                                                     *
;                                                                     *
;                                                                     *
;                                                                     *
;**********************************************************************

   list      p=12F683        ; list directive to define processor
   #include <p12F683.inc>    ; processor specific variable definitions

   errorlevel  -302          ; suppress message 302 from list file

   __CONFIG   _FCMEN_OFF & _IESO_OFF & _CP_OFF & _CPD_OFF & _BOD_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTOSCIO

;***** VARIABLE DEFINITIONS******************
w_temp        EQU     0x70        ; variable used for context saving
status_temp   EQU     0x71        ; variable used for context saving

FLAGS      EQU      0x20      ;software state register
PULSER      EQU      0x21      ;pulse on counter
DWELLTIMER   EQU      0x22      ;pulse off counter
STATE      EQU      0x23      ;programmed state
BUTTONHOLD   EQU      0x24
FREQR      EQU      0x25      ;frequency value
TEMP1      EQU      0x26
TEMP2      EQU      0x27
PULSEL      EQU      0x28
DWELLTIMEL   EQU      0x29
TEMP5      EQU      0x2A
LEDBLINK   EQU      0x2B
TEMP3      EQU      0x2C



;*******bits in FLAGS register***********
PULSEONR      equ      0
PULSEONL      equ      1
TRIGOUT         equ      2
LEDHI         equ      3
STATECHANGE      equ      4


;*******bits in STATE register***********
RIGHTACTIVE      equ      0
LEFTACTIVE      equ      1

;*********GPIO pin names*****************
LEDL         equ      5
LEDR         equ      4
BUTTONR         equ      2
BUTTONL         equ      3
TRIGGERR      equ      0
TRIGGERL      equ      1


;**********Speed settings: change these to change speed (0x05-0xFF)
FIRERATE1      equ      0x2F
FIRERATE2      equ      0x16
FIRERATE3      equ      0x12
FIRERATE4      equ      0x0F



;**********************************************************************
   ORG     0x000             ; processor reset vector
   goto    main              ; go to beginning of program
   

   ORG     0x004             ; interrupt vector location
   movwf   w_temp            ; save off current W register contents
   movf   STATUS,w          ; move status register into W register
   movwf   status_temp       ; save off contents of STATUS register

         ;Take a good note here. OSC is left at default 4MHz.
         ; We are running at 1MHz instruction cycle, or 1 micro second
         ;Timer 2 is prescaled 1:4 and compared (PR2) to 250.
         ; we now have hardware interupt that falls every 1ms exactly
         ;within limitation of osctune. Main code is inconsequential.
         ;PULSE and DWELL values control the signals precisely.
         ;All pulse logic is switched within the few microseconds to
         ;service the interupt routine. DO NOT modify the ISR
         ;with any kind of 'wait' or 'loop'. If you want to trigger
         ; timed events do so by setting an open FLAG bit and have the
         ;event done in the main loop.


   btfss   PIR1, TMR2IF      ;timer 2 int happened
   retfie

;**************** LED blinking *********************************************
                        ;Our main routine will turn the flag bit
                        ;LEDON on or off. The 10ms pulse is a duty cycle
                        ;for the code to work with both CG and
                        ;matrix controllers.

BlinkLed   
   btfss   FLAGS, LEDHI
   goto   LedLow
   decfsz   LEDBLINK, f         ;if pulse is active, count down 10ms
   goto   RightLED
   movlw   0x0A
   movwf   LEDBLINK
   bcf      FLAGS, LEDHI      ;10ms done, turn off LEDHI bit
   goto   RightLED
LedLow
   decfsz   LEDBLINK, f         ;LEDLO time, count down 10ms
   goto   RightLED
   movlw   0x0A
   movwf   LEDBLINK
   bsf      FLAGS, LEDHI      ;10ms done, turn LEDHI bit on

RightLED
   btfsc   STATE, RIGHTACTIVE   ;is RF on?
   goto   OutputRightLED
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, LEDR      ;tristate LED
   bcf      STATUS, RP0         ;bank 0
   goto   LeftLED
OutputRightLED
   btfsc   FLAGS, LEDHI      ;if ledhi true,
   bsf      GPIO, LEDR         ;turn output hi
   btfss   FLAGS, LEDHI      ;if ledhi flase,
   bcf      GPIO, LEDR         ;turn led output lo
   bsf      STATUS, RP0         ;bank 1
   bcf      TRISIO, LEDR      ;turn output on
   bcf      STATUS, RP0         ;bank 0

LeftLED
   btfsc   STATE, LEFTACTIVE   ;is RF on?
   goto   OutputleftLED
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, LEDL      ;tristate LED
   bcf      STATUS, RP0         ;bank 0
   goto   RightTrigger
OutputleftLED
   btfsc   FLAGS, LEDHI      ;if ledhi true,
   bsf      GPIO, LEDL         ;turn output hi
   btfss   FLAGS, LEDHI      ;if ledhi flase,
   bcf      GPIO, LEDL         ;turn led output lo
   bsf      STATUS, RP0         ;bank 1
   bcf      TRISIO, LEDL      ;turn output on
   bcf      STATUS, RP0         ;bank 0

;**************** Right trigger logic***************************************   
RightTrigger
   btfsc   STATE, RIGHTACTIVE   ;is RF on?
   goto   ActiveR
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, TRIGGERR   ;output off
   bcf      STATUS, RP0         ;bank 0   
   goto   LeftTrigger

ActiveR
   btfss   FLAGS, TRIGOUT      ;controllertype
   bcf      GPIO, TRIGGERR      ;determines
   btfsc   FLAGS, TRIGOUT      ;output state
   bsf      GPIO, TRIGGERR   
   btfss   FLAGS, PULSEONR      ;is pulse active?
   goto   OffstateR
   decfsz   PULSER, f         ;if pulse is active, count down 10ms
   goto   LeftTrigger
   bcf      FLAGS, PULSEONR      ;10ms is over, clear flags and
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, TRIGGERR   ;tristate output
   bcf      STATUS, RP0         ;bank 0   
   movf   FREQR, w         ;and reset pulse time.
   movwf   PULSER
   goto   LeftTrigger

OffstateR
   decfsz   DWELLTIMER, f      ;count down dwell time to next pulse
   goto   LeftTrigger
   bsf      FLAGS, PULSEONR      ;if dwell is done turn on outputs
   bsf      STATUS, RP0         ;bank 1
   bcf      TRISIO, TRIGGERR   ;and reset pulse time
   bcf      STATUS, RP0         ;bank 0   
   movf   FREQR, w         ;from frequency value
   movwf   DWELLTIMER

LeftTrigger
   btfsc   STATE, LEFTACTIVE   ;is RF on?
   goto   ActiveL
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, TRIGGERL   ;output off
   bcf      STATUS, RP0         ;bank 0   
   goto   EndInterupt

ActiveL
   btfss   FLAGS, TRIGOUT      ;controllertype
   bcf      GPIO, TRIGGERL      ;determines
   btfsc   FLAGS, TRIGOUT      ;output state
   bsf      GPIO, TRIGGERL   
   btfss   FLAGS, PULSEONL      ;is pulse active?
   goto   OffstateL
   decfsz   PULSEL, f         ;if pulse is active, count down 10ms
   goto   EndInterupt
   bcf      FLAGS, PULSEONL      ;10ms is over, clear flags and
   bsf      STATUS, RP0         ;bank 1
   bsf      TRISIO, TRIGGERL   ;tristate output
   bcf      STATUS, RP0         ;bank 0   
   movf   FREQR, w         ;and reset pulse time.
   movwf   PULSEL
   goto   EndInterupt

OffstateL
   decfsz   DWELLTIMEL, f      ;count down dwell time to next pulse
   goto   EndInterupt
   bsf      FLAGS, PULSEONL      ;if dwell is done turn on outputs
   bsf      STATUS, RP0         ;bank 1
   bcf      TRISIO, TRIGGERL   ;and reset pulse time
   bcf      STATUS, RP0         ;bank 0
   movf   FREQR, w         ;from frequency value
   movwf   DWELLTIMEL

EndInterupt
   bcf      PIR1, TMR2IF

   movf    status_temp,w     ; retrieve copy of STATUS register
   movwf   STATUS            ; restore pre-isr STATUS register contents
   swapf   w_temp,f
   swapf   w_temp,w          ; restore pre-isr W register contents
   retfie                    ; return from interrupt


;*************************************SUBROUTINES**********************************

Wait10ms
   clrf   TEMP2
   movlw   0x0D
   movwf   TEMP1            ;rough 10ms timer for button debounce.

Loop1
   decfsz   TEMP2, f         ;count down 256*3=768 cycles
   goto   Loop1
   decfsz   TEMP1, f         ;count down 768*13=9986 cycles
   goto   Loop1
   return
   
         ;*************************************************************
ReadEE
   bsf     STATUS    , RP0      ;Bank1
   movlw   0x02
    movwf   EEADR
    bsf     EECON1    , RD      ;start read
    movf    EEDAT    , W
   bcf     STATUS    , RP0      ;Bank0
    return
         ;*************************************************************

WriteEE
   bsf     STATUS    , RP0
   movwf   EEDAT
   movlw   0x02
   movwf   EEADR
   bsf      EECON1,WREN       ;Enable write
   bcf      INTCON, GIE       ;Disable INTs
   btfsc   INTCON, GIE       ;See AN576
   goto   $-2
   movlw    0x55             ;Unlock write
   movwf    EECON2
   movlw    0xAA
   movwf    EECON2
   bsf    EECON1, WR          ;Start the write
WaitForEEWrite
   btfsc   EECON1, WR         ;wait for hardware to clear (done writing)
    goto    WaitForEEWrite
   bcf     STATUS    , RP0      ;Bank0
   bsf    INTCON, GIE       ;Enable INTS
    return

;**********************************************************************************
;**********************************************************************************
;**********************************************************************************
main

   clrf   GPIO
   clrf   FLAGS            ;clear outputs and code status register
   movlw   0x07
   movwf   CMCON0            ;comparators off
   bsf      STATUS, RP0         ;bank 1
   movlw   0x0F            ;start with 0-3 inputs (ADC read)
   movwf   TRISIO            ;pin 0 & 1 & 5 out, all other inputs
   movlw   0x51            ;Fosc/16, pin 0 analog
   movwf   ANSEL            ;Right trigger is analog input
   movlw   0x04
   movwf   WPU               ;enable week pullups
   bcf      OPTION_REG, 7      ;enable all week pullups
   bcf      STATUS, RP0         ;bank 0

   movlw   0x01            ;Left just, Vdd, channel 0
   movwf   ADCON0            ;module on.
   movlw   0x10
   movwf   TEMP1
Wait4ADC
   decfsz   TEMP1, f
   goto   Wait4ADC         ;acquisition time
   bsf      ADCON0, 1         ;start ADC
   btfsc   ADCON0, 1
   goto   $-1               ;wait for conversion to be done
   movlw   0x40            ;about 0.5V from 2V ref
   subwf   ADRESH, w         ;if f > W, C=1
   btfsc   STATUS, C         ;ie- if trigger > 0.5V, then matrix
   bsf      FLAGS, TRIGOUT      ;matrix config sources (output high)
   bsf      STATUS, RP0         ;bank 1
   movlw   0x0C            ;restore pin IO
   movwf   TRISIO   
   clrf   ANSEL            ;all digital now
   bcf      STATUS, RP0         ;bank 0

   movlw   0x0A            ;start with 10ms pulse width
   movwf   LEDBLINK         ;for the LEDs
   movlw   FIRERATE1         ;this will get overwritten,
   movwf   PULSER            ; but start with a default value
   movwf   PULSEL
   movwf   DWELLTIMER
   movwf   DWELLTIMEL
   call   ReadEE            ;get state value
   movwf   STATE

   movlw   0x01
   movwf   T2CON            ;timer 2, prescale 1:4, no postscale
   bsf      STATUS, RP0         ;bank 1
   movlw   0xFA
   movwf   PR2               ;setup 1ms hardware interupt
   bsf      PIE1, TMR2IE      ;enable timer2 interupt
   bcf      STATUS, RP0         ;bank 0
   bsf      T2CON, TMR2ON      ;turn on timer2
   movlw   0xC0
   movwf   INTCON            ;turn on interupts globally
   goto   InitState         ;get first firerate value

;******MAIN LOOP***************
Start
TestLeft
   btfsc   GPIO, BUTTONL
   goto   TestRight         ;Test for left button press
   call   Wait10ms
   btfsc   GPIO, BUTTONL      ;button is down for 10ms
   goto   TestRight
ReleaseLeft
   btfss   GPIO, BUTTONL      ;wait for button release         
   goto   ReleaseLeft
   call   Wait10ms
   btfss   GPIO, BUTTONL      ;wait for button release         
   goto   ReleaseLeft

   movlw   0x02
   xorwf   STATE, f         ;toggle left trigger
   call   WriteEE            ;store state

TestRight
   btfsc   GPIO, BUTTONR
   goto   Start
;   goto   DisplayState      ;Test for right button press
   call   Wait10ms
   btfsc   GPIO, BUTTONR      ;button is down for min 10ms
   goto   Start
;   goto   DisplayState
   movlw   0xC8
   movwf   BUTTONHOLD         ;setup for 2 second hold
First2seconds
   call   Wait10ms
   btfsc   GPIO, BUTTONR      ;button is down for more than 10ms
   goto   ReleaseRight
   decfsz   BUTTONHOLD, f
   goto   First2seconds
   movlw   0xC8
   movwf   BUTTONHOLD         ;setup for 2 second hold
Second2seconds
   call   Wait10ms
   btfsc   GPIO, BUTTONR      
   goto   ReleaseRight
   decfsz   BUTTONHOLD, f       
   goto   Second2seconds      ;button down for 4 seconds, change firerate
   
NextState
   movlw   0x40
   addwf   STATE, f         ;change firerate state
InitState                  ;begin test for
   btfsc   STATE, 7         ;state 1 or 2
   goto   State3
   btfsc   STATE, 6
   goto   State2
State1
   movlw   FIRERATE1            ;state 1
   movwf   FREQR
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop01
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop01
   bsf      STATE, RIGHTACTIVE      ;led on
   bsf      FLAGS, STATECHANGE      ;notify a state change
   goto   ReleaseRight

State2
   movlw   FIRERATE2         ;state 2
   movwf   FREQR
   bcf      STATE, RIGHTACTIVE      ;blink twice, led off
   movlw   0x0A
   movwf   TEMP3
Loop02
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop02
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop03
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop03
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop04
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop04
   bsf      STATE, RIGHTACTIVE      ;led on
   bsf      FLAGS, STATECHANGE      ;notify a state change
   goto   ReleaseRight

State3
   btfsc   STATE, 6
   goto   State4
   movlw   FIRERATE3         ;state 3
   movwf   FREQR
   bcf      STATE, RIGHTACTIVE      ;blink 3 times, led off
   movlw   0x0A
   movwf   TEMP3
Loop05
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop05
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop06
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop06
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop07
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop07
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop08
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop08
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop09
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop09
   bsf      STATE, RIGHTACTIVE      ;led on
   bsf      FLAGS, STATECHANGE      ;notify a state change
   goto   ReleaseRight

State4
   movlw   FIRERATE4         ;state 4, 22ms cycle
   movwf   FREQR
   bcf      STATE, RIGHTACTIVE      ;blink 4 times, led off
   movlw   0x0A
   movwf   TEMP3
Loop10
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop10
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop11
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop11
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop12
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop12
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop13
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop13
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop14
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop14
   bsf      STATE, RIGHTACTIVE      ;led on
   movlw   0x0A
   movwf   TEMP3
Loop15
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop15
   bcf      STATE, RIGHTACTIVE      ;led off
   movlw   0x0A
   movwf   TEMP3
Loop16
   call   Wait10ms            ;100 ms
   decfsz   TEMP3, f
   goto   Loop16
   bsf      STATE, RIGHTACTIVE   ;led on
   bsf      FLAGS, STATECHANGE   ;notify a state change

ReleaseRight
   btfss   GPIO, BUTTONR      ;wait for button release         
   goto   ReleaseRight
   call   Wait10ms
   btfss   GPIO, BUTTONL      ;wait for button release         
   goto   ReleaseRight
   btfsc   FLAGS, STATECHANGE   ;test for button tap or state change
   goto   Continue01
   movlw   0x01
   xorwf   STATE, f         ;toggle left trigger if button tap
Continue01
   bcf      FLAGS, STATECHANGE
   call   WriteEE            ;store state
   goto   Start




   
; initialize eeprom locations

   ORG   0x2100
   DE   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07


   END                       ; directive 'end of program'




Saludo.





Ok muchas gracias por los enlaces, otra cosa el capacitor también se puede comprar hay?

No yo en principio la verdad que no voy a tocar nada del código por que no entiendo la programación muy bien (si alguien me quisiera enseñar?), lo digo porque he visto en ebay pics programados para disparar a 25 sps por segundo sin ser detectado por el parche en cod 5 y estaría bien aprender, por decirlo asi, a burlar el parche teniendo en cuenta que ya mismo saldrá el cod 6 y creo que sacarán frecuentementes parches para el tambien

Saludos
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
Buenas:

¿Qué valor deseas para el condensador o capacitor?

Se puede comprar también.

http://www.msebilbao.com/tienda/advance ... 9c&x=0&y=0

Cualquier componente electrónico en:
http://es.rs-online.com/web/

Sobre programación. ¿En quñe sentido quieres programar? ¿Grabar el .hex al PIC o programando el PIC?

Grabar el PIC lo puedes ver en estos manuales:
Ic-Prog:

http://www.slideshare.net/Metaconta/man ... esentation

WinPic800:
http://www.slideshare.net/Metaconta/man ... esentation

Si quieres aprender a programar y poder hacer lo que quieras, con este libro y sus ejemplos. http://www.pic16f84a.org/index.php?option=com_content&view=article&id=66&Itemid=87
Salu2.
REHome escribió:Buenas:

¿Qué valor deseas para el condensador o capacitor?

Se puede comprar también.

http://www.msebilbao.com/tienda/advance ... 9c&x=0&y=0

Cualquier componente electrónico en:
http://es.rs-online.com/web/

Sobre programación. ¿En quñe sentido quieres programar? ¿Grabar el .hex al PIC o programando el PIC?

Grabar el PIC lo puedes ver en estos manuales:
Ic-Prog:

http://www.slideshare.net/Metaconta/man ... esentation

WinPic800:
http://www.slideshare.net/Metaconta/man ... esentation

Si quieres aprender a programar y poder hacer lo que quieras, con este libro y sus ejemplos. http://www.pic16f84a.org/index.php?option=com_content&view=article&id=66&Itemid=87
Salu2.



El valor del capacitor es el de 0.1uf no? el que hace falta para el segundo archivo .hex posteado. Si fuera a comprarlo tendría que pedir un condensador electrolítico de 0.1uf no?

En cuanto a los enlaces muchas gracias y en cuanto al libro para aprender programación, si no se nada pero nada este me ayudara?

Saludos
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
No se el valor del condensador deseas.

Lo del libro es para aprender desce cero en ASM. Ya está la tercera edicción hace meses actualizada.
http://www.ra-ma.es/libros/MICROCONTROL ... 7897-917-2

Cuando domines algo del PIC, eres un maestro en esta materia, sobre todo modificación de consolas o crear tus propias variantes del CHIP.

Aprovechen antes de salir la PS4 que ya no habrá formato físico, incluyendo las dos consolas.
cervantes escribió:andresete... edita la informacion del primer post con respecto a que deberia de poder funcionar tambien con pics 12F629 y 12F675.. te confirmo que con los 12f629 no funciona.. al momento de grabar lo hace pero al verificar da un error y si lo pruebas no sirve... estos codigos estan especialmente hechos para que funcionen en pics 12f683.....



Pues debe de ser verdad ya que compre ese pic y parece no funcionar programe el pic y todo el cual me da un error de verificacion pero se comenta que es normal

Al ponerlo en el mando lo no hace nada sigue funcionando el mando menos los gatillos LT RT y al pulsar el boton de sincronizar pues tampoco hace nada xD

Que puede ser? pic incompatible? el error de verificacion parece ser debido a que no graba nada en la pestaña de datos se queda todo a 0 pero el codigo si que lo graba

Saludos
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
emex9103 escribió:
cervantes escribió:andresete... edita la informacion del primer post con respecto a que deberia de poder funcionar tambien con pics 12F629 y 12F675.. te confirmo que con los 12f629 no funciona.. al momento de grabar lo hace pero al verificar da un error y si lo pruebas no sirve... estos codigos estan especialmente hechos para que funcionen en pics 12f683.....



Pues debe de ser verdad ya que compre ese pic y parece no funcionar programe el pic y todo el cual me da un error de verificacion pero se comenta que es normal

Al ponerlo en el mando lo no hace nada sigue funcionando el mando menos los gatillos LT RT y al pulsar el boton de sincronizar pues tampoco hace nada xD

Que puede ser? pic incompatible? el error de verificacion parece ser debido a que no graba nada en la pestaña de datos se queda todo a 0 pero el codigo si que lo graba

Saludos



En el propio código fuente se ve muy claro que es sólo para el 12F683 y no para las demás.

¿Se puede hacer funcionar para los 12F629 y 12F675?

Sí. Modificando su código fuente para adaptarlo a ella.

Si me entra ganas lo intentaré.

12F209/675
12F683

EDITO:
Estoy intentando cambiarlo y la verdad es complicado, ya que la estructura del 12F683 es más compleja que el 12F629. Les dejo claro que no podrás grabar nunca al 16F629/675 este .hex. Su estrucctura interna es muy diferente y no lo permite.
Ok

Pues estaria bien que editaran el manual para evitar mas confuciones ya que ahora tengo 5 12f629 que no me valdran para nada xD

Saludos
REHome escribió:No se el valor del condensador deseas.

Lo del libro es para aprender desce cero en ASM. Ya está la tercera edicción hace meses actualizada.
http://www.ra-ma.es/libros/MICROCONTROL ... 7897-917-2

Cuando domines algo del PIC, eres un maestro en esta materia, sobre todo modificación de consolas o crear tus propias variantes del CHIP.

Aprovechen antes de salir la PS4 que ya no habrá formato físico, incluyendo las dos consolas.



El valor del condensador que busco es el que se ve en la foto de narwin, aqui pone que debe ser de 0.1 uF yo el que he encontado es de 1uF tambien serviría o habría algún problema?
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
No lo se porque no lo he probado, claro que afectará el funcionamiento. Pruebalo a ver si te funciona, no esperes buenos resultados. No se romperá nada, por probar no pasa nada.

Sobre el PIC16F629 no funciona porque no se incluye los siguientes registros.

TMR2IF
ADCON0 ---> SOLO LO TIENE EL PIC12F675
CMCON0 ---> TIENE EL CMCON
ADRESH ---> TIENE EL ADRESL
ANSEL ---> SOLO LO TIENE EL PIC12F675
T2CON ---> SOLO TIENE EL T1CON
PR2
TMR2IE
T2CON ---> SOLO TIENE EL T1CON
TMR2ON


Por último, no tiene la característica del BODEM sino que tiene BOD

Resumiendo, no te sirve el 12F629.
REHome escribió:No lo se porque no lo he probado, claro que afectará el funcionamiento. Pruebalo a ver si te funciona, no esperes buenos resultados. No se romperá nada, por probar no pasa nada.

Sobre el PIC16F629 no funciona porque no se incluye los siguientes registros.

TMR2IF
ADCON0 ---> SOLO LO TIENE EL PIC12F675
CMCON0 ---> TIENE EL CMCON
ADRESH ---> TIENE EL ADRESL
ANSEL ---> SOLO LO TIENE EL PIC12F675
T2CON ---> SOLO TIENE EL T1CON
PR2
TMR2IE
T2CON ---> SOLO TIENE EL T1CON
TMR2ON


Por último, no tiene la característica del BODEM sino que tiene BOD

Resumiendo, no te sirve el 12F629.


Ya me lo imagine al ver que noo funiono xD y despues de estar 1 hora buscano en san google y no encontrar nada xD

Aver si ADRESETE se pasa y corrige el tutorial ya que al que no sepa de pic como yo y no tenga ninguno puede cometer el error de comprarlos como hice yo jeje 5 pic por 6,50€ esta bien? aver si encuentro algo en lo que entretenerme y gastarlos jeje aunque no tengo ni idea que hacer con ellos xD de pic lo unico que sabia hacer era programarlos para poder ver una famosa plataforma de tv gratis que tiempos aquellos y ahora nos tienen a pan y agua

Esta vez pues volvere a comprarlos pero me ire a lo seguro jeje y comprare otros 5 12f683

Pd: alguien que tenga un 12f675 que haga una prueba fisica si ya tiene su mando modificado para que andresete lo descarte o lo deje

Saludos
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
Ese PIC12F629 se usa mucho para la Wii (También sirve para la PS1, sustituto del 12F508/509). Le cargas el .hex para ella y la vendes. Pues no te salió muy caro 5 PIC a ese precio.

El 12F683 es más caro.

He intentado adaptarlo al 12F629 y es imposoible, no está preparado para ella, no hay manera. Confirmo que no es posible usarlo en 12F629 ni el 12F675.

En cuanto lo lea, ya corregirá el tutorial. Al menos debe decir que 12F683 no son compatibles con los 12F629/75

Saludo.
Una cosa REHome ahy unos pic aun mas pequeños que los normales son los mismos pero de un tamaño menor estos vienen muy bien para pegarlos sobre la placa del mando y hacin no tener que agujerear el mando o acoplarlo detras del vibrador la del vibrador no me gusta nada ya que quedan muy mal los cables y queria saber si para esos pic tan pequeños ahy socalos para quitarlos y ponerlos
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
Por dentro es idéntico, por fuera hay varios modelos. Los pueden tener zócalos y los que no. Como son de soldadura de superficie normalmente no usan zócalos. Son más caro. Debes tener un soldador de punta muy fina.
REHome escribió:Por dentro es idéntico, por fuera hay varios modelos. Los pueden tener zócalos y los que no. Como son de soldadura de superficie normalmente no usan zócalos. Son más caro. Debes tener un soldador de punta muy fina.



Ya se lo del soldador mi idea era soldar un socalo sobre la placa del mando justamente en la placa ahy una parte en la que lleva unos puntos de soldaduras para un chip el cual no esta mi idea era soldarlo ahy y llevar los cables asta esos puntos pero antes ahy que cortar las pistas de la placa que noo hacen nada ya que no ahy nada soldado

Te dejo una imagen
Imagen

Las lineas rojas seria por donde abria que cortar las pistas con un cutter y el punto rojo pues donde va el pic evientemente xD pero me gustaria soldar un zocalo pequeño en vez del pic directamente ya que el dia que lo quiera quitar tendria que sacar el soldador nuevamente pero segun leo los pic de estos tipos son solo para soldarlo y no ahy zocalos para ellos con lo que me fastidia el dia que lo quiera reprogramar ya que abria que desoldar todo o soldar cables del pic al programador
Espero que empiecen a banear a todos los que usan esto en Xbox Live, con tanta gente haciendo TRAMPAS, da asco jugar.

Si sois muy malos jugando, podéis entrenar un poco en vez de usar basuras de este tipo, no hace falta joder a los demás usuarios con estas mierdas.

Lo dicho, espero que os baneen muy pronto (sólo a los que lo uséis en Xbox Live).

P.D: Si estoy con 8 amigos como suelo estar en una party y me encuentro con alguno que lo usa, se lleva 8 reportes por modificación del sistema a la velocidad de la luz.
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
Tienes derecho a quejarte en X-Box si lo localizas.
emex9103 escribió:
REHome escribió:Por dentro es idéntico, por fuera hay varios modelos. Los pueden tener zócalos y los que no. Como son de soldadura de superficie normalmente no usan zócalos. Son más caro. Debes tener un soldador de punta muy fina.



Ya se lo del soldador mi idea era soldar un socalo sobre la placa del mando justamente en la placa ahy una parte en la que lleva unos puntos de soldaduras para un chip el cual no esta mi idea era soldarlo ahy y llevar los cables asta esos puntos pero antes ahy que cortar las pistas de la placa que noo hacen nada ya que no ahy nada soldado

Te dejo una imagen
Imagen

Las lineas rojas seria por donde abria que cortar las pistas con un cutter y el punto rojo pues donde va el pic evientemente xD pero me gustaria soldar un zocalo pequeño en vez del pic directamente ya que el dia que lo quiera quitar tendria que sacar el soldador nuevamente pero segun leo los pic de estos tipos son solo para soldarlo y no ahy zocalos para ellos con lo que me fastidia el dia que lo quiera reprogramar ya que abria que desoldar todo o soldar cables del pic al programador



emex si que hay zocalos para colocar el pic y no tener que soldarlo directamente a la placa, yo personalmente no los he usado pero si que los he visto asi que busca que seguro que encuentras alguno y asi no tienes que desoldar el pic cada vez que quieras reprogramarlo.

Saludos
Para todos los tramposos que usais o teneis pensado usar el controles modificados en xbox live, os tengo que dar una mala noticia:

Raziel_DSM escribió:Segun nuestro querido FourZeroTwo, se acabaron los mandos modificados con turbo en Modern Warfare 2
Foros de Infinity Ward
FOURZEROTWO en los Foros de Infinity Ward escribió:Modded Controllers will not be usable in Modern Warfare 2.
Sigrid escribió:Para todos los tramposos que usais o teneis pensado usar el controles modificados en xbox live, os tengo que dar una mala noticia:

Raziel_DSM escribió:Segun nuestro querido FourZeroTwo, se acabaron los mandos modificados con turbo en Modern Warfare 2
Foros de Infinity Ward
FOURZEROTWO en los Foros de Infinity Ward escribió:Modded Controllers will not be usable in Modern Warfare 2.



Menos mal que empiezan a pensar en eliminar esta lacra del Live.

No sé, no veo sentido alguno hacer estas chapuzas tan sólo por ser muy malo en los shooters (hablo de la basura esta del rapidfire) y querer joder la experiencia de otros jugadores tan sólo por creerte que eres bueno.

Así va el Live, que cada día hay más tramposos.
Sigrid escribió:Para todos los tramposos que usais o teneis pensado usar el controles modificados en xbox live, os tengo que dar una mala noticia:

Raziel_DSM escribió:Segun nuestro querido FourZeroTwo, se acabaron los mandos modificados con turbo en Modern Warfare 2
Foros de Infinity Ward
FOURZEROTWO en los Foros de Infinity Ward escribió:Modded Controllers will not be usable in Modern Warfare 2.


Si lo modifico no es para jugar al live,es mas ni siquiera tengo live.

Lo quiero para mis partidas a lo bestia ratataaaa ratataaaa ratataaaa
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
¿Si alguien que es muy bueno sólo lo quiere pra vacilar un rato y como curiosidad?
khazad escribió:

Si lo modifico no es para jugar al live,es mas ni siquiera tengo live.

Lo quiero para mis partidas a lo bestia ratataaaa ratataaaa ratataaaa


+1

Ni tengo live ni pienso usarlo el dia que lo tenga ademas el rapid fire se puede desastivar cuando uno quiera esto para halo 3 en el modo offline tiene que estar de lujo yo desde luego ahy partidas las cuales no soy capas de pasarmelas en dificulta media xD y esto sera una gran ayuda

Logico: mas de uno lo usara para el lado del mal pero bueno cada uno con su suerte ¿no?

Saludos
khazad escribió:
Sigrid escribió:Para todos los tramposos que usais o teneis pensado usar el controles modificados en xbox live, os tengo que dar una mala noticia:

Segun nuestro querido FourZeroTwo, se acabaron los mandos modificados con turbo en Modern Warfare 2
Foros de Infinity Ward
FOURZEROTWO en los Foros de Infinity Ward escribió:Modded Controllers will not be usable in Modern Warfare 2.


Si lo modifico no es para jugar al live,es mas ni siquiera tengo live.

Lo quiero para mis partidas a lo bestia ratataaaa ratataaaa ratataaaa


Exacto, fíjate que especifico "Para todos los tramposos que usais o teneis pensado usar el controles modificados en xbox live" si lo vas a usar para jugar sólo o incluso en privadas con colegas que no les importe me parece perfectamente lícito , pero lo malo es cuando se usa para fasdiar a los que queremos jugar limpiamente. La libertad de uno acaba donde empieza la del otro.
Señores tengo un problema que por lo visto a alguien ya le ha pasado

Al grabar el codigo en el icprog al verificar me da el fallo 0001h, he visto que dicen que no pasa nada y que no da problema pero a mi si que me lo da, al instalarlo no me funciona y ya me he cargado dos pic 12f683 }:/ . Estoy usando el programador con el portatil hay algun dato que deba tener en cuenta en cuanto a la configuración? En el ic prog es directo pero en el winpic800 veo que hay que configurar el puerto y como yo no uso ningun puerto COM (uso el usb), no se si se deberá a esto el fallo.

Si alguien me puede ayudar no me gustaria malgastar mas pic.

Saludos
Ya he dicho que los portatiles dan problemas para programar, por que debido al ahorro de energia no proporcionan la energia suficiente para programar.
Ok, probrare el lunes en el curro ya que tengo el cable serie alli, espero que se deba a eso y no me cargue mas pic jeje

Gracias andresete
Sigrid escribió:Para todos los tramposos que usais o teneis pensado usar el controles modificados en xbox live, os tengo que dar una mala noticia:

Segun nuestro querido FourZeroTwo, se acabaron los mandos modificados con turbo en Modern Warfare 2
Foros de Infinity Ward

FOURZEROTWO en los Foros de Infinity Ward escribió:Modded Controllers will not be usable in Modern Warfare 2.


cierto , si lo quieres te tienes que comprar los modificados por ellos que hacen lo mismo pero mejor [carcajad] [carcajad] [carcajad] [carcajad]
http://gear.ign.com/dor/articles/101848 ... 82509.html
itineranT escribió:Sigrid escribió:Para todos los tramposos que usais o teneis pensado usar el controles modificados en xbox live, os tengo que dar una mala noticia:

Segun nuestro querido FourZeroTwo, se acabaron los mandos modificados con turbo en Modern Warfare 2
Foros de Infinity Ward

FOURZEROTWO en los Foros de Infinity Ward escribió:Modded Controllers will not be usable in Modern Warfare 2.


cierto , si lo quieres te tienes que comprar los modificados por ellos que hacen lo mismo pero mejor [carcajad] [carcajad] [carcajad] [carcajad]
http://gear.ign.com/dor/articles/101848 ... 82509.html




jajaj esa es wena, tranquilos que el modern warfare 2 no funcionarán, bueno los nuestros si jajajaaj
REHome está baneado por "Ya hemos tenido suficiente, búscate otro foro para trollear por favor"
rafaliyo86 escribió:Señores tengo un problema que por lo visto a alguien ya le ha pasado

Al grabar el codigo en el icprog al verificar me da el fallo 0001h, he visto que dicen que no pasa nada y que no da problema pero a mi si que me lo da, al instalarlo no me funciona y ya me he cargado dos pic 12f683 }:/ . Estoy usando el programador con el portatil hay algun dato que deba tener en cuenta en cuanto a la configuración? En el ic prog es directo pero en el winpic800 veo que hay que configurar el puerto y como yo no uso ningun puerto COM (uso el usb), no se si se deberá a esto el fallo.

Si alguien me puede ayudar no me gustaria malgastar mas pic.

Saludos


Mira el manual en PDF del IC-PROG aquí y solucionarás tus problemas.

http://electronica-pic.blogspot.com/200 ... -prog.html

Saludo.
REHome escribió:
rafaliyo86 escribió:Señores tengo un problema que por lo visto a alguien ya le ha pasado

Al grabar el codigo en el icprog al verificar me da el fallo 0001h, he visto que dicen que no pasa nada y que no da problema pero a mi si que me lo da, al instalarlo no me funciona y ya me he cargado dos pic 12f683 }:/ . Estoy usando el programador con el portatil hay algun dato que deba tener en cuenta en cuanto a la configuración? En el ic prog es directo pero en el winpic800 veo que hay que configurar el puerto y como yo no uso ningun puerto COM (uso el usb), no se si se deberá a esto el fallo.

Si alguien me puede ayudar no me gustaria malgastar mas pic.

Saludos


Mira el manual en PDF del IC-PROG aquí y solucionarás tus problemas.

http://electronica-pic.blogspot.com/200 ... -prog.html

Saludo.


Gracias por la ayuda, he estado viendo el manual y el fallo yo creo que será al intentar programarlo en el portatil ya que el programador y los pic estan bien creo y en las opciones del ic-prog la unica configuración que me da es el COM3 y no aparece nada de USB, ademas desde el de sobremesa nunca me ha dado fallo y con el portatil los dos que he intentado programar me ha dado fallo. Asi que cuando tenga el cable serie probare desde el sobremesa haber si no me vuelve a dar fallo
rafaliyo86 escribió:Señores tengo un problema que por lo visto a alguien ya le ha pasado

Al grabar el codigo en el icprog al verificar me da el fallo 0001h, he visto que dicen que no pasa nada y que no da problema pero a mi si que me lo da, al instalarlo no me funciona y ya me he cargado dos pic 12f683 }:/ . Estoy usando el programador con el portatil hay algun dato que deba tener en cuenta en cuanto a la configuración? En el ic prog es directo pero en el winpic800 veo que hay que configurar el puerto y como yo no uso ningun puerto COM (uso el usb), no se si se deberá a esto el fallo.

Si alguien me puede ayudar no me gustaria malgastar mas pic.

Saludos


saludos yo lo eh programado con la portatil (acer one sistema operativo Win 7 y funciona de lujo)
tengo un programador USB si necesitas ayuda para este o nombre del programa manden privado que ya vi que aqui esta caliente el ambiente
180 respuestas
1, 2, 3, 4