Part of Slepp's ProjectsPastebinTURLImagebinFilebin
Feedback -- English French German Japanese
Create Upload Newest Tools Donate
Sign In | Create Account

Advertising

Unnamed
Sunday, June 17th, 2012 at 4:38:48pm MDT 

  1.         LIST P=12F683, R=DEC
  2.         INCLUDE <P12F683.INC>
  3.         __CONFIG _CPD_OFF&_CP_OFF&_PWRTE_ON&_BOREN_OFF&_MCLRE_ON&_HS_OSC&_WDT_OFF&_FCMEN_OFF
  4.  
  5. #DEFINE TMP0 0x20
  6. #DEFINE TMP1 0x21
  7. #DEFINE POSX 0x22
  8. #DEFINE POSY 0x23
  9.  
  10.         ORG 0
  11.         GOTO START
  12.  
  13.         ORG 4
  14.         BTFSC PIR1, TMR2IF
  15.         CALL TIMER
  16.         RETFIE
  17. TIMER
  18.         BCF PIR1, TMR2IF
  19. RESINX
  20.         MOVF POSX, W
  21.         CALL SIN1336
  22.         ANDLW 0xFF ; just for flag
  23.         BTFSC STATUS, Z
  24.         GOTO ENDSINX
  25.         MOVWF TMP1
  26. RESINY
  27.         MOVF POSY, W
  28.         CALL SIN941
  29.         ANDLW 0xFF ; just for flag
  30.         BTFSC STATUS, Z
  31.         GOTO ENDSINY
  32.  
  33.         CLRF TMP0
  34.         ADDWF TMP1, F
  35.         BTFSC STATUS, C ; store carry to TMP0
  36.         BSF TMP0, 7
  37.         ; put low bit in the right place
  38.         BCF CCP1CON, 5
  39.         BTFSC TMP1, 0
  40.         BSF CCP1CON, 5
  41.  
  42.         RRF TMP1, W
  43.         ANDLW 0x7F
  44.         IORWF TMP0, W
  45.         MOVWF CCPR1L
  46.  
  47.         INCF POSX, F
  48.         INCF POSY, F
  49.         RETFIE
  50.  
  51. ENDSINX
  52.         CLRF POSX
  53.         GOTO RESINX
  54. ENDSINY
  55.         CLRF POSY
  56.         GOTO RESINY
  57. TONEEND
  58.         BCF T2CON, TMR2ON
  59.         BSF TRISIO, 2
  60.         RETFIE
  61.  
  62. START
  63.         ; (PR2 + 1) * 4 * TOSC * TMR2_PRESCALE = period
  64.         ; duty cycle bits 0 and 1 are bits 4 and 5 of CCP1CON
  65.         ; CCPR1L holds the 8 most significant bits
  66.  
  67.         BSF STATUS, RP0
  68. ;       BSF OSCCON, 4 ; Set up internal oscillator for 8MHz
  69.         BSF TRISIO, 2 ; Disable output driver for GP2
  70.         BSF PIE1, TMR2IE
  71.  
  72.         BCF STATUS, RP0
  73.         MOVLW 0x0C      ; enable PWM mode
  74.         MOVWF CCP1CON
  75.         BSF INTCON, PEIE
  76.         BSF INTCON, GIE
  77.  
  78.         CALL DOTONE
  79.  
  80. ; loop forever
  81. INFLOOP
  82.         GOTO INFLOOP
  83.  
  84. DOTONE
  85.         BSF STATUS, RP0
  86.         BCF TRISIO, 2
  87.         BCF STATUS, RP0
  88.         CLRF POSX
  89.         CLRF POSY
  90.         BSF T2CON, TMR2ON
  91. WAITTONE
  92.         BTFSC T2CON, TMR2ON
  93.         GOTO WAITTONE
  94.         RETURN
  95.  
  96. ; 19531.25 samples per second
  97.  
  98. SIN697
  99.         ADDWF PCL, F
  100.         RETLW 128
  101.         RETLW 156
  102.         RETLW 183
  103.         RETLW 207
  104.         RETLW 228
  105.         RETLW 243
  106.         RETLW 252
  107.         RETLW 255
  108.         RETLW 252
  109.         RETLW 243
  110.         RETLW 228
  111.         RETLW 208
  112.         RETLW 183
  113.         RETLW 156
  114.         RETLW 128
  115.         RETLW 100
  116.         RETLW 73
  117.         RETLW 49
  118.         RETLW 29
  119.         RETLW 13
  120.         RETLW 4
  121.         RETLW 1
  122.         RETLW 4
  123.         RETLW 13
  124.         RETLW 28
  125.         RETLW 48
  126.         RETLW 72
  127.         RETLW 99
  128.         RETLW 128
  129.         RETLW 0
  130.  
  131. SIN770
  132.         ADDWF PCL, F
  133.         RETLW 128
  134.         RETLW 159
  135.         RETLW 188
  136.         RETLW 214
  137.         RETLW 235
  138.         RETLW 248
  139.         RETLW 255
  140.         RETLW 254
  141.         RETLW 245
  142.         RETLW 229
  143.         RETLW 206
  144.         RETLW 179
  145.         RETLW 149
  146.         RETLW 118
  147.         RETLW 88
  148.         RETLW 59
  149.         RETLW 35
  150.         RETLW 16
  151.         RETLW 5
  152.         RETLW 1
  153.         RETLW 4
  154.         RETLW 15
  155.         RETLW 34
  156.         RETLW 58
  157.         RETLW 86
  158.         RETLW 117
  159.         RETLW 0
  160.  
  161. SIN852
  162.         ADDWF PCL, F
  163.         RETLW 221
  164.         RETLW 241
  165.         RETLW 253
  166.         RETLW 255
  167.         RETLW 248
  168.         RETLW 232
  169.         RETLW 207
  170.         RETLW 177
  171.         RETLW 144
  172.         RETLW 110
  173.         RETLW 76
  174.         RETLW 47
  175.         RETLW 23
  176.         RETLW 7
  177.         RETLW 1
  178.         RETLW 4
  179.         RETLW 16
  180.         RETLW 36
  181.         RETLW 64
  182.         RETLW 96
  183.         RETLW 0
  184.  
  185. SIN941
  186.         ADDWF PCL, F
  187.         RETLW 166
  188.         RETLW 200
  189.         RETLW 228
  190.         RETLW 247
  191.         RETLW 255
  192.         RETLW 252
  193.         RETLW 237
  194.         RETLW 212
  195.         RETLW 179
  196.         RETLW 142
  197.         RETLW 105
  198.         RETLW 68
  199.         RETLW 37
  200.         RETLW 15
  201.         RETLW 2
  202.         RETLW 2
  203.         RETLW 12
  204.         RETLW 34
  205.         RETLW 64
  206.         RETLW 99
  207.         RETLW 0
  208.  
  209. SIN1209
  210.         ADDWF PCL, F
  211.         RETLW 128
  212.         RETLW 176
  213.         RETLW 217
  214.         RETLW 245
  215.         RETLW 255
  216.         RETLW 247
  217.         RETLW 220
  218.         RETLW 180
  219.         RETLW 131
  220.         RETLW 84
  221.         RETLW 41
  222.         RETLW 12
  223.         RETLW 1
  224.         RETLW 8
  225.         RETLW 33
  226.         RETLW 73
  227.         RETLW 121
  228.         RETLW 0
  229.  
  230. SIN1336
  231.         ADDWF PCL, F
  232.         RETLW 128
  233.         RETLW 181
  234.         RETLW 224
  235.         RETLW 250
  236.         RETLW 254
  237.         RETLW 235
  238.         RETLW 196
  239.         RETLW 145
  240.         RETLW 91
  241.         RETLW 44
  242.         RETLW 11
  243.         RETLW 1
  244.         RETLW 13
  245.         RETLW 46
  246.         RETLW 95
  247.         RETLW 0
  248.  
  249. SIN1477
  250.         ADDWF PCL, F
  251.         RETLW 128
  252.         RETLW 186
  253.         RETLW 232
  254.         RETLW 254
  255.         RETLW 249
  256.         RETLW 216
  257.         RETLW 164
  258.         RETLW 105
  259.         RETLW 50
  260.         RETLW 13
  261.         RETLW 1
  262.         RETLW 17
  263.         RETLW 58
  264.         RETLW 115
  265.         RETLW 0
  266.  
  267. #IF 0
  268. SIN
  269.         ; destroys TMP0
  270.         ; 14 cycles including call
  271.         MOVWF TMP0, F
  272.         ANDLW 0x7F
  273.         CALL SINTAB ; 9
  274.         BTFSC TMP0, 7
  275.         SUBLW 127
  276.         BTFSS TMP0, 7
  277.         ADDLW 128
  278.         RETURN
  279. SINTAB ; 5 cycles including call
  280.         ADDWF PCL, F
  281.         RETLW 0
  282.         RETLW 3
  283.         RETLW 6
  284.         RETLW 9
  285.         RETLW 12
  286.         RETLW 15
  287.         RETLW 18
  288.         RETLW 21
  289.         RETLW 24
  290.         RETLW 28
  291.         RETLW 31
  292.         RETLW 34
  293.         RETLW 37
  294.         RETLW 40
  295.         RETLW 43
  296.         RETLW 46
  297.         RETLW 48
  298.         RETLW 51
  299.         RETLW 54
  300.         RETLW 57
  301.         RETLW 60
  302.         RETLW 63
  303.         RETLW 65
  304.         RETLW 68
  305.         RETLW 71
  306.         RETLW 73
  307.         RETLW 76
  308.         RETLW 78
  309.         RETLW 81
  310.         RETLW 83
  311.         RETLW 85
  312.         RETLW 88
  313.         RETLW 90
  314.         RETLW 92
  315.         RETLW 94
  316.         RETLW 96
  317.         RETLW 98
  318.         RETLW 100
  319.         RETLW 102
  320.         RETLW 104
  321.         RETLW 106
  322.         RETLW 108
  323.         RETLW 109
  324.         RETLW 111
  325.         RETLW 112
  326.         RETLW 114
  327.         RETLW 115
  328.         RETLW 117
  329.         RETLW 118
  330.         RETLW 119
  331.         RETLW 120
  332.         RETLW 121
  333.         RETLW 122
  334.         RETLW 123
  335.         RETLW 124
  336.         RETLW 124
  337.         RETLW 125
  338.         RETLW 126
  339.         RETLW 126
  340.         RETLW 127
  341.         RETLW 127
  342.         RETLW 127
  343.         RETLW 127
  344.         RETLW 127
  345.         RETLW 127
  346.         RETLW 127
  347.         RETLW 127
  348.         RETLW 127
  349.         RETLW 127
  350.         RETLW 127
  351.         RETLW 126
  352.         RETLW 126
  353.         RETLW 125
  354.         RETLW 124
  355.         RETLW 124
  356.         RETLW 123
  357.         RETLW 122
  358.         RETLW 121
  359.         RETLW 120
  360.         RETLW 119
  361.         RETLW 118
  362.         RETLW 117
  363.         RETLW 115
  364.         RETLW 114
  365.         RETLW 112
  366.         RETLW 111
  367.         RETLW 109
  368.         RETLW 108
  369.         RETLW 106
  370.         RETLW 104
  371.         RETLW 102
  372.         RETLW 100
  373.         RETLW 98
  374.         RETLW 96
  375.         RETLW 94
  376.         RETLW 92
  377.         RETLW 90
  378.         RETLW 88
  379.         RETLW 85
  380.         RETLW 83
  381.         RETLW 81
  382.         RETLW 78
  383.         RETLW 76
  384.         RETLW 73
  385.         RETLW 71
  386.         RETLW 68
  387.         RETLW 65
  388.         RETLW 63
  389.         RETLW 60
  390.         RETLW 57
  391.         RETLW 54
  392.         RETLW 51
  393.         RETLW 49
  394.         RETLW 46
  395.         RETLW 43
  396.         RETLW 40
  397.         RETLW 37
  398.         RETLW 34
  399.         RETLW 31
  400.         RETLW 28
  401.         RETLW 25
  402.         RETLW 21
  403.         RETLW 18
  404.         RETLW 15
  405.         RETLW 12
  406.         RETLW 9
  407.         RETLW 6
  408.         RETLW 3
  409. #ENDIF
  410.  
  411.         END

advertising

Update the Post

Either update this post and resubmit it with changes, or make a new post.

You may also comment on this post.

update paste below
details of the post (optional)

Note: Only the paste content is required, though the following information can be useful to others.

Save name / title?

(space separated, optional)



Please note that information posted here will expire by default in one month. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.

worth-right
fantasy-obligation
fantasy-obligation