Autor Tema: Pequeño pero poderoso: PIC12F/LF1822  (Leído 7493 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Pequeño pero poderoso: PIC12F/LF1822
« Respuesta #15 en: 01 de Diciembre de 2011, 20:49:52 »
Jejeje!  :D te me adelantaste!!! :P muy bueno tu trabajo con el pequeñin eso es sacarle todo el jugo a un pic. Yo tambien tengo ese pic pero aun no le encontre funcion , solo lo use para un pequeño panel tactil.
De nuevo felicitaciones!!!! ;-)

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Pequeño pero poderoso: PIC12F/LF1822
« Respuesta #16 en: 02 de Diciembre de 2011, 16:48:20 »
Haha, muchas gracias samshiel_pic  :P

Desconectado electronic182

  • PIC10
  • *
  • Mensajes: 36
Re: Pequeño pero poderoso: PIC12F/LF1822
« Respuesta #17 en: 02 de Diciembre de 2011, 23:00:14 »
hola jeremy interesante tu proyecto , justamente estoy tratando de  hacer un interruptor tactil para un trabajo, pero no c x donde empezar , y si no fuera mucha molestia podrias poner el programa en asm..

gracias de antemano

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Pequeño pero poderoso: PIC12F/LF1822
« Respuesta #18 en: 02 de Diciembre de 2011, 23:33:05 »
ajj enserio?  :mrgreen:

Bueno, de asm lo unico que tengo es esto:
Código: [Seleccionar]
CCS PCM C Compiler, Version 4.124, 15004               02-Dic-11 21:31

               Filename: C:\Jeremy\Probando_PIC12LF1822_CCSv4_124\Prob.lst

               ROM used: 255 words (12%)
                         Largest free fragment is 1792
               RAM used: 19 (15%) at main() level
                         34 (27%) worst case
               Stack:    2 worst case (0 in main + 2 for interrupts)

*
0000:  MOVLP  00
0001:  GOTO   08D
0002:  NOP
*
0004:  CLRF   03
0005:  CLRF   0A
0006:  MOVLB  00
0007:  MOVF   20,W
0008:  MOVWF  24
0009:  MOVF   21,W
000A:  MOVWF  25
000B:  MOVF   22,W
000C:  MOVWF  26
000D:  MOVF   23,W
000E:  MOVWF  27
000F:  BTFSS  0B.5
0010:  GOTO   013
0011:  BTFSC  0B.2
0012:  GOTO   023
0013:  MOVF   24,W
0014:  MOVWF  20
0015:  MOVF   25,W
0016:  MOVWF  21
0017:  MOVF   26,W
0018:  MOVWF  22
0019:  MOVF   27,W
001A:  MOVWF  23
001B:  RETFIE
....................  
.................... #INCLUDE <12LF1822.h>
.................... //////// Standard Header file for the PIC12LF1822 device ////////////////
*
008A:  BCF    0B.2
008B:  MOVLP  00
008C:  GOTO   013
.................... #device PIC12LF1822
.................... #list
....................  
....................  
.................... #FUSES INTRC_IO                
.................... #FUSES NOWDT                    
.................... #FUSES PUT                      
.................... #FUSES NOMCLR                    
.................... #FUSES PROTECT                
.................... #FUSES NOCPD                  
.................... #FUSES NOBROWNOUT                  
.................... #FUSES NOCLKOUT                  
.................... #FUSES NOIESO                    
.................... #FUSES NOFCMEN                  
.................... #FUSES NOWRT                    
.................... #FUSES PLL_SW              
.................... #FUSES STVREN                
.................... #FUSES BORV25                  
.................... #FUSES NODEBUG                
.................... #FUSES NOLVP                
....................  
.................... #USE DELAY (CLOCK = 32 000 000)
....................  
.................... #USE TOUCHPAD (PIN_A2 = 'A')
....................  
.................... #USE FAST_IO(A)
....................  
.................... #DEFINE PIN_TEST  PIN_A4
....................  
.................... char Touch_tecla;
....................  
.................... #ZERO_RAM
.................... void Main (void)
.................... {
*
008D:  MOVLW  5E
008E:  MOVWF  20
008F:  MOVLW  21
0090:  MOVWF  04
0091:  MOVLW  00
0092:  MOVWF  05
0093:  CLRF   00
0094:  INCF   04,F
0095:  DECFSZ 20,F
0096:  GOTO   093
0097:  MOVLW  20
0098:  MOVWF  20
0099:  MOVLW  A0
009A:  MOVWF  04
009B:  MOVLW  00
009C:  MOVWF  05
009D:  CLRF   00
009E:  INCF   04,F
009F:  DECFSZ 20,F
00A0:  GOTO   09D
00A1:  CLRF   20
00A2:  CLRF   05
00A3:  CLRF   04
00A4:  MOVLW  1F
00A5:  ANDWF  03,F
00A6:  MOVLW  F0
00A7:  MOVLB  01
00A8:  MOVWF  19
00A9:  MOVLW  03
00AA:  MOVLB  00
00AB:  MOVWF  29
00AC:  CLRF   28
00AD:  MOVLB  01
00AE:  MOVF   15,W
00AF:  ANDLW  C0
00B0:  IORLW  07
00B1:  MOVWF  15
00B2:  MOVLW  C5
00B3:  MOVLB  00
00B4:  MOVWF  18
00B5:  MOVLW  81
00B6:  MOVWF  19
00B7:  MOVLW  8D
00B8:  MOVWF  1E
00B9:  MOVLW  02
00BA:  MOVWF  1F
00BB:  BSF    0B.5
00BC:  MOVLB  03
00BD:  CLRF   0C
00BE:  MOVLB  02
00BF:  CLRF   12
00C0:  CLRF   11
....................    setup_oscillator(OSC_8MHZ | OSC_NORMAL | OSC_PLL_ON);
00C1:  MOVLW  F0
00C2:  MOVLB  01
00C3:  MOVWF  19
....................  
....................    setup_adc_ports(NO_ANALOGS|VSS_VDD);  
00C4:  BCF    1E.0
00C5:  BCF    1E.1
00C6:  MOVLW  00
00C7:  MOVLB  03
00C8:  MOVWF  0C
00C9:  MOVWF  0E
....................    setup_adc(ADC_OFF);  
00CA:  MOVLB  01
00CB:  BCF    1D.0
....................    setup_dac(DAC_OFF);  
00CC:  MOVLB  02
00CD:  CLRF   18
....................    //setup_dac(DAC_VSS_VDD | DAC_OUTPUT);
....................    setup_spi(SPI_SS_DISABLED);
00CE:  BCF    1D.5
00CF:  BCF    1D.6
00D0:  MOVLB  04
00D1:  BCF    15.5
00D2:  MOVLW  01
00D3:  MOVWF  15
00D4:  MOVLW  00
00D5:  MOVWF  14
....................    //setup_timer_0(T0_internal);  
....................    //setup_timer_1(T1_DISABLED);  
....................    setup_timer_2(T2_DISABLED,0,1);  
00D6:  MOVLB  00
00D7:  MOVWF  21
00D8:  MOVWF  1C
00D9:  MOVLW  00
00DA:  MOVWF  1B
....................    setup_ccp1(CCP_OFF);  
00DB:  MOVLB  05
00DC:  CLRF   13
00DD:  CLRF   14
00DE:  CLRF   15
00DF:  BCF    1E.0
00E0:  BCF    1E.1
....................    setup_comparator(NC_NC);  
00E1:  MOVLB  02
00E2:  CLRF   12
00E3:  CLRF   11
....................    
....................    set_tris_a(0b001100);
00E4:  MOVLW  0C
00E5:  MOVLB  01
00E6:  MOVWF  0C
....................    output_a(0);
00E7:  MOVLB  02
00E8:  CLRF   0C
....................    
....................   TOUCHPAD_STATE(1);            //calibrates, then enters normal state
00E9:  MOVLW  02
00EA:  MOVLB  00
00EB:  MOVWF  29
....................    
....................    enable_interrupts(GLOBAL);
00EC:  MOVLW  C0
00ED:  IORWF  0B,F
....................    
....................    while (true)
....................    {      
....................       if (touchpad_hit() == true)
00EE:  MOVF   28,W
00EF:  BTFSC  03.2
00F0:  GOTO   0FE
....................       {
....................          Touch_tecla = TOUCHPAD_GETC();   //will wait until a pin is detected
00F1:  MOVF   28,W
00F2:  BTFSC  03.2
00F3:  GOTO   0F1
00F4:  CLRF   28
00F5:  MOVWF  30
....................          
....................          if (Touch_tecla == 'A')
00F6:  MOVF   30,W
00F7:  SUBLW  41
00F8:  BTFSS  03.2
00F9:  GOTO   0FE
....................             output_toggle(PIN_TEST);
00FA:  MOVLW  10
00FB:  MOVLB  02
00FC:  XORWF  0C,F
00FD:  MOVLB  00
....................       }
....................    }
00FE:  GOTO   0EE
.................... }
00FF:  SLEEP

Yo te recomiendo que trabajes en C, pero bueno. Exitos!
« Última modificación: 02 de Diciembre de 2011, 23:39:26 por jeremylf »