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

Advertising

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

fantasy-obligation
fantasy-obligation