aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2012-10-07 18:53:46 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2012-10-07 18:53:46 +0000
commit732b905f6bdeba0551fc6b97a8a019f11b8b70fe (patch)
treeb4c1c0af4dec63eabbaa2996e30a8eaac1a87fe9
parent5640ac0a90ce93e05a31572f1397425907d65332 (diff)
named Pduino library actuall 'pduino' while keeping the object called [arduino]
svn path=/trunk/externals/pduino/; revision=16347
-rw-r--r--Makefile2
-rwxr-xr-xPICduino/P16F767.INC502
-rwxr-xr-xPICduino/f767duino.HEX126
-rwxr-xr-xPICduino/f767duino.asm1940
-rwxr-xr-xPICduino/f767duino.mcp30
-rwxr-xr-xPICduino/f767duino.mcwbin72192 -> 0 bytes
-rwxr-xr-xPICduino/picduino.pngbin40478 -> 0 bytes
-rw-r--r--pduino-meta.pd (renamed from arduino-meta.pd)2
8 files changed, 2 insertions, 2600 deletions
diff --git a/Makefile b/Makefile
index a0700f8..d3a6a4d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
## Pd library template version 1.0.13
# For instructions on how to use this template, see:
# http://puredata.info/docs/developer/MakefileTemplate
-LIBRARY_NAME = arduino
+LIBRARY_NAME = pduino
# add your .c source files, one object per file, to the SOURCES
# variable, help files will be included automatically, and for GUI
diff --git a/PICduino/P16F767.INC b/PICduino/P16F767.INC
deleted file mode 100755
index 5b15168..0000000
--- a/PICduino/P16F767.INC
+++ /dev/null
@@ -1,502 +0,0 @@
- LIST
-; P16F767.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
- NOLIST
-
-; This header file defines configurations, registers, and other useful bits of
-; information for the PIC16F767 microcontroller. These names are taken to match
-; the data sheets as closely as possible.
-
-; Note that the processor must be selected before this file is
-; included. The processor may be selected the following ways:
-
-; 1. Command line switch:
-; C:\ MPASM MYFILE.ASM /PIC16F767
-; 2. LIST directive in the source file
-; LIST P=PIC16F767
-; 3. Processor Type entry in the MPASM full-screen interface
-
-;==========================================================================
-;
-; Revision History
-;
-;==========================================================================
-
-;Rev: Date: Reason:
-;1.00 05/05/03 Initial Release
-;1.01 10/21/03 Made changes to Program Memory register names.
-;1.02 04/07/04 Added INT0IE & INT0IF bit names.
-
-;==========================================================================
-;
-; Verify Processor
-;
-;==========================================================================
-
- IFNDEF __16F767
- MESSG "Processor-header file mismatch. Verify selected processor."
- ENDIF
-
-;==========================================================================
-;
-; Register Definitions
-;
-;==========================================================================
-
-W EQU H'0000'
-F EQU H'0001'
-
-;----- Register Files------------------------------------------------------
-
-INDF EQU H'0000'
-TMR0 EQU H'0001'
-PCL EQU H'0002'
-STATUS EQU H'0003'
-FSR EQU H'0004'
-PORTA EQU H'0005'
-PORTB EQU H'0006'
-PORTC EQU H'0007'
-PORTE EQU H'0009'
-PCLATH EQU H'000A'
-INTCON EQU H'000B'
-PIR1 EQU H'000C'
-PIR2 EQU H'000D'
-TMR1L EQU H'000E'
-TMR1H EQU H'000F'
-T1CON EQU H'0010'
-TMR2 EQU H'0011'
-T2CON EQU H'0012'
-SSPBUF EQU H'0013'
-SSPCON EQU H'0014'
-CCPR1L EQU H'0015'
-CCPR1H EQU H'0016'
-CCP1CON EQU H'0017'
-RCSTA EQU H'0018'
-TXREG EQU H'0019'
-RCREG EQU H'001A'
-CCPR2L EQU H'001B'
-CCPR2H EQU H'001C'
-CCP2CON EQU H'001D'
-ADRESH EQU H'001E'
-ADCON0 EQU H'001F'
-
-OPTION_REG EQU H'0081'
-TRISA EQU H'0085'
-TRISB EQU H'0086'
-TRISC EQU H'0087'
-TRISE EQU H'0089'
-PIE1 EQU H'008C'
-PIE2 EQU H'008D'
-PCON EQU H'008E'
-OSCCON EQU H'008F'
-OSCTUNE EQU H'0090'
-SSPCON2 EQU H'0091'
-PR2 EQU H'0092'
-SSPADD EQU H'0093'
-SSPSTAT EQU H'0094'
-CCPR3L EQU H'0095'
-CCPR3H EQU H'0096'
-CCP3CON EQU H'0097'
-TXSTA EQU H'0098'
-SPBRG EQU H'0099'
-ADCON2 EQU H'009B'
-CMCON EQU H'009C'
-CVRCON EQU H'009D'
-ADRESL EQU H'009E'
-ADCON1 EQU H'009F'
-
-WDTCON EQU H'0105'
-LVDCON EQU H'0109'
-PMDATA EQU H'010C'
-PMADR EQU H'010D'
-PMDATH EQU H'010E'
-PMADRH EQU H'010F'
-
-PMCON1 EQU H'018C'
-
-;----- STATUS Bits --------------------------------------------------------
-
-IRP EQU H'0007'
-RP1 EQU H'0006'
-RP0 EQU H'0005'
-NOT_TO EQU H'0004'
-NOT_PD EQU H'0003'
-Z EQU H'0002'
-DC EQU H'0001'
-C EQU H'0000'
-
-;----- INTCON Bits --------------------------------------------------------
-
-GIE EQU H'0007'
-PEIE EQU H'0006'
-T0IE EQU H'0005'
-TMR0IE EQU H'0005'
-INTE EQU H'0004'
-INT0IE EQU H'0004'
-RBIE EQU H'0003'
-T0IF EQU H'0002'
-TMR0IF EQU H'0002'
-INTF EQU H'0001'
-INT0IF EQU H'0001'
-RBIF EQU H'0000'
-
-;----- PIR1 Bits ----------------------------------------------------------
-
-PSPIF EQU H'0007'
-ADIF EQU H'0006'
-RCIF EQU H'0005'
-TXIF EQU H'0004'
-SSPIF EQU H'0003'
-CCP1IF EQU H'0002'
-TMR2IF EQU H'0001'
-TMR1IF EQU H'0000'
-
-;----- PIR2 Bits ----------------------------------------------------------
-
-OSFIF EQU H'0007'
-CMIF EQU H'0006'
-LVDIF EQU H'0005'
-BCLIF EQU H'0003'
-CCP3IF EQU H'0001'
-CCP2IF EQU H'0000'
-
-;----- T1CON Bits ---------------------------------------------------------
-
-T1RUN EQU H'0006'
-T1CKPS1 EQU H'0005'
-T1CKPS0 EQU H'0004'
-T1OSCEN EQU H'0003'
-NOT_T1SYNC EQU H'0002'
-T1INSYNC EQU H'0002' ; Backward compatibility only
-T1SYNC EQU H'0002'
-TMR1CS EQU H'0001'
-TMR1ON EQU H'0000'
-
-;----- T2CON Bits ---------------------------------------------------------
-
-TOUTPS3 EQU H'0006'
-TOUTPS2 EQU H'0005'
-TOUTPS1 EQU H'0004'
-TOUTPS0 EQU H'0003'
-TMR2ON EQU H'0002'
-T2CKPS1 EQU H'0001'
-T2CKPS0 EQU H'0000'
-
-;----- SSPCON Bits --------------------------------------------------------
-
-WCOL EQU H'0007'
-SSPOV EQU H'0006'
-SSPEN EQU H'0005'
-CKP EQU H'0004'
-SSPM3 EQU H'0003'
-SSPM2 EQU H'0002'
-SSPM1 EQU H'0001'
-SSPM0 EQU H'0000'
-
-;----- CCP1CON Bits -------------------------------------------------------
-
-CCP1X EQU H'0005'
-CCP1Y EQU H'0004'
-CCP1M3 EQU H'0003'
-CCP1M2 EQU H'0002'
-CCP1M1 EQU H'0001'
-CCP1M0 EQU H'0000'
-
-;----- RCSTA Bits ---------------------------------------------------------
-
-SPEN EQU H'0007'
-RX9 EQU H'0006'
-RC9 EQU H'0006' ; Backward compatibility only
-NOT_RC8 EQU H'0006' ; Backward compatibility only
-RC8_9 EQU H'0006' ; Backward compatibility only
-SREN EQU H'0005'
-CREN EQU H'0004'
-ADDEN EQU H'0003'
-FERR EQU H'0002'
-OERR EQU H'0001'
-RX9D EQU H'0000'
-RCD8 EQU H'0000' ; Backward compatibility only
-
-;----- CCP2CON Bits -------------------------------------------------------
-
-CCP2X EQU H'0005'
-CCP2Y EQU H'0004'
-CCP2M3 EQU H'0003'
-CCP2M2 EQU H'0002'
-CCP2M1 EQU H'0001'
-CCP2M0 EQU H'0000'
-
-;----- ADCON0 Bits --------------------------------------------------------
-
-ADCS1 EQU H'0007'
-ADCS0 EQU H'0006'
-CHS2 EQU H'0005'
-CHS1 EQU H'0004'
-CHS0 EQU H'0003'
-GO EQU H'0002'
-NOT_DONE EQU H'0002'
-GO_DONE EQU H'0002'
-CHS3 EQU H'0001'
-ADON EQU H'0000'
-
-;----- OPTION_REG Bits -----------------------------------------------------
-
-NOT_RBPU EQU H'0007'
-INTEDG EQU H'0006'
-T0CS EQU H'0005'
-T0SE EQU H'0004'
-PSA EQU H'0003'
-PS2 EQU H'0002'
-PS1 EQU H'0001'
-PS0 EQU H'0000'
-
-;----- TRISE Bits ---------------------------------------------------------
-
-IBF EQU H'0007'
-OBF EQU H'0006'
-IBOV EQU H'0005'
-PSPMODE EQU H'0004'
-TRISE3 EQU H'0003'
-TRISE2 EQU H'0002'
-TRISE1 EQU H'0001'
-TRISE0 EQU H'0000'
-
-;----- PIE1 Bits ----------------------------------------------------------
-
-PSPIE EQU H'0007'
-ADIE EQU H'0006'
-RCIE EQU H'0005'
-TXIE EQU H'0004'
-SSPIE EQU H'0003'
-CCP1IE EQU H'0002'
-TMR2IE EQU H'0001'
-TMR1IE EQU H'0000'
-
-;----- PIE2 Bits ----------------------------------------------------------
-
-OSFIE EQU H'0007'
-CMIE EQU H'0006'
-LVDIE EQU H'0005'
-BCLIE EQU H'0003'
-CCP3IE EQU H'0001'
-CCP2IE EQU H'0000'
-
-;----- PCON Bits ----------------------------------------------------------
-
-SBOREN EQU H'0002'
-NOT_POR EQU H'0001'
-NOT_BO EQU H'0000'
-NOT_BOR EQU H'0000'
-
-;----- OSCCON Bits -------------------------------------------------------
-IRCF2 EQU H'0006'
-IRCF1 EQU H'0005'
-IRCF0 EQU H'0004'
-OSTS EQU H'0003'
-IOFS EQU H'0002'
-SCS1 EQU H'0001'
-SCS0 EQU H'0000'
-
-;----- OSCTUNE Bits -------------------------------------------------------
-TUN5 EQU H'0005'
-TUN4 EQU H'0004'
-TUN3 EQU H'0003'
-TUN2 EQU H'0002'
-TUN1 EQU H'0001'
-TUN0 EQU H'0000'
-
-;----- SSPCON2 Bits --------------------------------------------------------
-
-GCEN EQU H'0007'
-ACKSTAT EQU H'0006'
-ACKDT EQU H'0005'
-ACKEN EQU H'0004'
-RCEN EQU H'0003'
-PEN EQU H'0002'
-RSEN EQU H'0001'
-SEN EQU H'0000'
-
-;----- SSPSTAT Bits -------------------------------------------------------
-
-SMP EQU H'0007'
-CKE EQU H'0006'
-D EQU H'0005'
-I2C_DATA EQU H'0005'
-NOT_A EQU H'0005'
-NOT_ADDRESS EQU H'0005'
-D_A EQU H'0005'
-DATA_ADDRESS EQU H'0005'
-P EQU H'0004'
-I2C_STOP EQU H'0004'
-S EQU H'0003'
-I2C_START EQU H'0003'
-R EQU H'0002'
-I2C_READ EQU H'0002'
-NOT_W EQU H'0002'
-NOT_WRITE EQU H'0002'
-R_W EQU H'0002'
-READ_WRITE EQU H'0002'
-UA EQU H'0001'
-BF EQU H'0000'
-
-;----- CCP3CON Bits -------------------------------------------------------
-
-CCP3X EQU H'0005'
-CCP3Y EQU H'0004'
-CCP3M3 EQU H'0003'
-CCP3M2 EQU H'0002'
-CCP3M1 EQU H'0001'
-CCP3M0 EQU H'0000'
-
-;----- TXSTA Bits ---------------------------------------------------------
-
-CSRC EQU H'0007'
-TX9 EQU H'0006'
-NOT_TX8 EQU H'0006' ; Backward compatibility only
-TX8_9 EQU H'0006' ; Backward compatibility only
-TXEN EQU H'0005'
-SYNC EQU H'0004'
-BRGH EQU H'0002'
-TRMT EQU H'0001'
-TX9D EQU H'0000'
-TXD8 EQU H'0000' ; Backward compatibility only
-
-;----- ADCON2 Bits ---------------------------------------------------------
-
-ACQT2 EQU H'0005'
-ACQT1 EQU H'0004'
-ACQT0 EQU H'0003'
-
-;----- CMCON Bits ---------------------------------------------------------
-
-C2OUT EQU H'0007'
-C1OUT EQU H'0006'
-C2INV EQU H'0005'
-C1INV EQU H'0004'
-CIS EQU H'0003'
-CM2 EQU H'0002'
-CM1 EQU H'0001'
-CM0 EQU H'0000'
-
-;----- CVRCON Bits --------------------------------------------------------
-
-CVREN EQU H'0007'
-CVROE EQU H'0006'
-CVRR EQU H'0005'
-CVR3 EQU H'0003'
-CVR2 EQU H'0002'
-CVR1 EQU H'0001'
-CVR0 EQU H'0000'
-
-;----- ADCON1 Bits --------------------------------------------------------
-
-ADFM EQU H'0007'
-ADCS2 EQU H'0006'
-VCFG1 EQU H'0005'
-VCFG0 EQU H'0004'
-PCFG3 EQU H'0003'
-PCFG2 EQU H'0002'
-PCFG1 EQU H'0001'
-PCFG0 EQU H'0000'
-
-;----- WDTCON Bits --------------------------------------------------------
-
-WDTPS3 EQU H'0004'
-WDTPS2 EQU H'0003'
-WDTPS1 EQU H'0002'
-WDTPS0 EQU H'0001'
-SWDTEN EQU H'0000'
-SWDTE EQU H'0000'
-
-;----- LVDCON Bits --------------------------------------------------------
-
-IRVST EQU H'0005'
-LVDEN EQU H'0004'
-LVDL3 EQU H'0003'
-LVDL2 EQU H'0002'
-LVDL1 EQU H'0001'
-LVDL0 EQU H'0000'
-
-;----- PMCON1 Bits --------------------------------------------------------
-
-RD EQU H'0000'
-
-
-;==========================================================================
-;
-; RAM Definition
-;
-;==========================================================================
-
- __MAXRAM H'1FF'
- __BADRAM H'08'
- __BADRAM H'88', H'9A'
- __BADRAM H'107'-H'108'
- __BADRAM H'185', H'187'-H'189', H'18D'-H'18F'
-
-;==========================================================================
-;
-; Configuration Bits
-;
-;==========================================================================
-
-_CONFIG1 EQU H'2007'
-_CONFIG2 EQU H'2008'
-
-;Configuration Byte 1 Options
-_CP_ALL EQU H'1FFF'
-_CP_OFF EQU H'3FFF'
-_CCP2_RC1 EQU H'3FFF'
-_CCP2_RB3 EQU H'2FFF'
-_DEBUG_OFF EQU H'3FFF'
-_DEBUG_ON EQU H'37FF'
-_VBOR_2_0 EQU H'3FFF'
-_VBOR_2_7 EQU H'3F7F'
-_VBOR_4_2 EQU H'3EFF'
-_VBOR_4_5 EQU H'3E7F'
-_BOREN_1 EQU H'3FFF' ;MUST BE CONFIGURED IN CONJUCTION W/ BORSEN (CONFIG2)
-_BOREN_0 EQU H'3FBF' ;MUST BE CONFIGURED IN CONJUCTION W/ BORSEN (CONFIG2)
-_MCLR_ON EQU H'3FFF'
-_MCLR_OFF EQU H'3FDF'
-_PWRTE_OFF EQU H'3FFF'
-_PWRTE_ON EQU H'3FF7'
-_WDT_ON EQU H'3FFF'
-_WDT_OFF EQU H'3FFB'
-_EXTRC_CLKOUT EQU H'3FFF'
-_EXTRC_IO EQU H'3FFE'
-_INTRC_CLKOUT EQU H'3FFD'
-_INTRC_IO EQU H'3FFC'
-_EXTCLK EQU H'3FEF'
-_HS_OSC EQU H'3FEE'
-_XT_OSC EQU H'3FED'
-_LP_OSC EQU H'3FEC'
-
-;Configuration Byte 2 Options
-_BORSEN_1 EQU H'3FFF' ;MUST BE CONFIGURED IN CONJUCTION W/ BOREN (CONFIG1)
-_BORSEN_0 EQU H'3FBF' ;MUST BE CONFIGURED IN CONJUCTION W/ BOREN (CONFIG1)
-_IESO_ON EQU H'3FFF'
-_IESO_OFF EQU H'3FFD'
-_FCMEN_ON EQU H'3FFF'
-_FCMEN_OFF EQU H'3FFE'
-
-
-;**** Brown-out Reset configurations **** (Refer to the 16F7x7 Data Sheet for more details)
-;BOREN_1 & BORSEN_1 = BOR enabled and always on
-;BOREN_1 & BORSEN_0 = BOR enabled during operation and disabled during sleep by hardware
-;BOREN_0 & BORSEN_1 = BOR controlled by software bit SBOREN (PCON,2)
-;BOREN_0 & BORSEN_0 = BOR disabled
-
-
-; To use the Configuration Bits, place the following lines in your source code
-; in the following format, and change the configuration value to the desired
-; setting (such as CP_OFF to CP_ALL). These are currently commented out here
-; and each __CONFIG line should have the preceding semicolon removed when
-; pasted into your source code.
-
-;Program Configuration Register 1
-; __CONFIG _CONFIG1, _CP_OFF & _CCP2_RC1 & _DEBUG_OFF & _VBOR_2_0 & BOREN_1 & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC
-
-;Program Configuration Register 2
-; __CONFIG _CONFIG2, _BORSEN_1 & _IESO_OFF & _FCMEN_OFF
-
-
- LIST
diff --git a/PICduino/f767duino.HEX b/PICduino/f767duino.HEX
deleted file mode 100755
index cfd7f2b..0000000
--- a/PICduino/f767duino.HEX
+++ /dev/null
@@ -1,126 +0,0 @@
-:020000040000FA
-:020000002A28AC
-:08000800F1000308F2000A08F0
-:10001000F3008C1E1F28831218080639031D26289A
-:100020000408F000560884001A0880007008840054
-:10003000D60A50305606031D1F284030D6007308DC
-:100040008A0072088300F10E710E090018121A0856
-:1000500018161F28A001A101A201A301A401A50156
-:10006000A601A701A801A901AA010130AB00063031
-:10007000AC004030D600D700F701F80186018701B7
-:10008000FF3083168500F4008600F5008700F60037
-:1000900083129A20D1015108D2000030D3000E21E2
-:1000A000D10A0E305102031C4B28953083169F0055
-:1000B000831280309F00283083169B0083121F1408
-:1000C000FE308316920083120730920084202B1C8E
-:1000D0007128973094200730A82084200030A82071
-:1000E0008420AD012C082D0203186628CE24A130EF
-:1000F0002D0794202F0D2E0D073994202F087F39BE
-:1001000094208420AD0A7228560857060319080067
-:100110005708840000082522D70A50305706031DCF
-:1001200084284030D70084288316981C9528831291
-:100130009900080083162F3099001815831298171C
-:10014000831698168C16831218160B178B17080037
-:10015000DA01D900D100D501D4010314D50DD40D95
-:10016000D1080319BE28D103AE28D10A07305106A1
-:100170000319C928D90A0310D50DD40D2608550531
-:10018000031DB52825085405031DB5288524DA0C60
-:10019000B5280310DA0C5A0894200800871B0314B2
-:1001A0000800071B03140800871A03140800071A25
-:1001B0000314080087190314080006180314080024
-:1001C000061A03140800861B03140800061B0314F8
-:1001D0000800861A0314080007190314080087187A
-:1001E00003140800071803140800861803140800F5
-:1001F000853004298D30042995300429A53004293F
-:10020000873004298F3004299F001F1905291E08F3
-:10021000AE0083161E088312AF000800003053069C
-:10022000031D5329982C26102810F61776088316DC
-:10023000870083120800A610A81076171629261129
-:100240002811F6161629A611A811761616292612B7
-:100250002812F6151629A612A81275147508831609
-:100260008600831208002613281375162E29A6135C
-:10027000A813F5172E292510271075172E29A5105C
-:10028000A710F5162E292511271176151629A51167
-:10029000A711F61416292512271276141629A5126D
-:1002A000A712F5142E290130530603198A29AA2C06
-:1002B0000800080026152811F6121629A615A811FF
-:1002C0007612162926162812F6111629A616A81235
-:1002D00075102E292617281375122E29A617A81374
-:1002E000F5132E292514271075132E29A514A710F0
-:1002F000F5122E292515271176111629A515A711F6
-:10030000F61016292516271276101629A516A712FB
-:10031000F5102E290230530603190800BC2C0800E2
-:10032000080026152815F6121629A615A815761206
-:10033000162926162816F6111629A616A8167510BF
-:100340002E292617281775122E29A617A817F51378
-:100350002E292514271475132E29A514A714F51278
-:100360002E292515271576111629A515A715F6107E
-:1003700016292516271676101629A516A716F51084
-:100380002E29780887000800770886000800F817EB
-:10039000031CF813C1297817031C7813C129F81618
-:1003A000031CF812C1297816031C7812C129F8150C
-:1003B000031CF811C1297714031C7710C429771680
-:1003C000031C7712C429F717031CF713C4297717E6
-:1003D000031C7713C429F716031CF712C4297815D8
-:1003E000031C7811C129F814031CF810C1297814D2
-:1003F000031C7810C129F714031CF710C429AB01A2
-:1004000008002B1408000301102A0130102A0230C2
-:10041000102A0330102A0430102A0530102A063022
-:10042000AC0008000230A0005808A100080001300C
-:10043000A0005808A100080024140800F0309420FF
-:1004400000309420013094200800D800A00803193F
-:100450007A2AA00322302007840058088000A108CF
-:1004600003190800A008031D0800D82C0230D3008F
-:100470002308D200093C03194F2A013E0319492AD7
-:10048000013E031D782A0E2122089B000C309D009E
-:10049000782A0E21220895000C309700782A0E2128
-:1004A0002208831695000C3097008312782A782A48
-:1004B0000030D3002208D200093C03196B2A013E08
-:1004C0000319682A013E031D782A0E219D01782A0E
-:1004D0000E219701782A0E21831697018312782A1C
-:1004E0002308D2000230D3000E21782A782A782AF5
-:1004F000A1010800D81B002C2808FF3A2605D500CA
-:100500002708FF3A2505D400241CB22AD51F8C2ABF
-:10051000031058180314E321541C922A0310D8180E
-:100520000314E721D41C982A031058190314EB2153
-:10053000541D9E2A0310D8190314EF21D41DA42A98
-:100540000310581A0314F321541EAA2A0310D81AB0
-:100550000314F721D41EB02A0310581B0314FB21E7
-:10056000A4010800551CB82A031058180314C72109
-:10057000D51CBE2A0310D8180314CB21551DC42A3C
-:10058000031058190314CF21D51DCA2A0310D819F6
-:100590000314D321551ED02A0310581A0314D7214F
-:1005A000D51ED62A0310D81A0314DB21551FDC2AC6
-:0A05B0000310581B0314DF2108009C
-:1008000004308A0058087F3982070800080013293D
-:100810001B291F29232927292B29332937293B293C
-:100820003F29432947294B294F2908000800080080
-:10083000080008000800FF29012A08000800080035
-:1008400008000800080008000800032A052A072AF3
-:10085000092A0B2A0D2A0F2A0800080008000800A0
-:100860000800080008000800080008000800080048
-:100870000800080008000800080008000800080038
-:100880000800080008000800080008000800080028
-:1008900008000800080008000800582959295A29AA
-:1008A0005E29622966296A296E29722976297A29A0
-:1008B0007E2982298629080008000800080008000F
-:1008C00008000800080008000800080008000800E8
-:1008D000080008001C2A080008000800080008009A
-:1008E000080008000800080008001E2A0800080088
-:1008F0000800080008000800080008000800172A7F
-:10090000122A172A122A172A080004308A005908C6
-:1009100003108207CE28D128D428D728DA28DD284A
-:10092000E028E328E628E928EC28EF28F228F52833
-:1009300004308A005208820713291B291F29232902
-:1009400027292B29332937293B293F29432947299F
-:100950004B294F2904308A00520882075829592907
-:100960005A295E29622966296A296E2972297629FF
-:100970007A297E298229862904308A005208820732
-:100980008F2990299129952999299D29A129A5295E
-:10099000A929AD29B129B529B929BD2904308A0071
-:1009A0002D088207F828FA28FC28FE2800290229A9
-:1009B00004308A00FA3021028207582A362A762A21
-:0409C000702A772AF8
-:02400E00A23FCF
-:02401000BC3FB3
-:00000001FF
diff --git a/PICduino/f767duino.asm b/PICduino/f767duino.asm
deleted file mode 100755
index aeb21ca..0000000
--- a/PICduino/f767duino.asm
+++ /dev/null
@@ -1,1940 +0,0 @@
-;********************************************************
-; *
-; Filename: f767duino.asm *
-; Date: 20061023 *
-; File Version: 0.7 *
-; implement analogWrite for hardware pwm on *
-; digital pins 9,10 and 11. *
-; Date: 20061016 *
-; File Version: 0.6 *
-; Fixed a bug in receive interrupt handler and *
-; buffer increment *
-; Date: 20061012 *
-; File Version: 0.5 *
-; Using shadow registers for tris *
-; registers to avoid bcf and bsf instructions *
-; Date: 20061012 *
-; File Version: 0.4 *
-; Fixed another bug. Digital out still doesn't *
-; work. Next try using shadow registers for tris *
-; registers to avoid bcf and bsf instructions *
-; Date: 20061011 *
-; File Version: 0.3 *
-; fixed a couple of bugs. Now analog input works *
-; Date: 20060927 *
-; File Version: 0.2 *
-; completed port to PIC asm *
-; Date: 20060921 *
-; File Version: 0.1 *
-; *
-; Author: Martin Peach *
-; *
-; *
-;********************************************************
-; *
-; Files required: P16F767.INC *
-; *
-; *
-;************************************************************************************************
-; *
-; This is an implementation of the pd firmware on Arduino using a PIC16F767 instead of an ATmega8.*
-; See picduino.png for the schematic. *
-; *
-;************************************************************************************************
-;___Arduino_Pin_Name____=___PIC_Pin_Name____*
-; DigitalPin0 RXD = RC7 *
-; DigitalPin1 TXD = RC6 *
-; DigitalPin2 = RC5 *
-; DigitalPin3 = RC4 *
-; DigitalPin4 = RC3 *
-; DigitalPin5 = RB0 *
-; DigitalPin6 = RB4 *
-; DigitalPin7 = RB7 *
-; DigitalPin8 = RB6 *
-; DigitalPin9 PWM = RB5 *
-; DigitalPin10 PWM = RC2 *
-; DigitalPin11 PWM = RC1 *
-; DigitalPin12 = RC0 *
-; DigitalPin13 = RB1 *
-; AnalogInput0 = RA0/AN0 *
-; AnalogInput1 = RA1/AN1 *
-; AnalogInput2 = RA2/AN2 *
-; AnalogInput3 = RA5/AN4 *
-; AnalogInput4 = RB2/AN8 *
-; AnalogInput5 = RB3/AN9 *
-; VRef = RA3/AN3 *
-; *
-; Timing parameters using PIC16F767:
-; FOsc = 14745600Hz
-; TOsc = 67.8168ns
-; Tad = 32*TOsc = 2.17014us, Tcnv = 12*Tad = 26.0417us Taqu = 12*Tad = 26.0417us
-; ADC needs 20us (~10Tad) to charge the sampling capacitor + 2Tad(~5us) after each conversion
-; Total adc time = 26*Tad = 56.4236us
-; Maximum ADC rate (1 channel) = 17723.1 conversions per second
-;
-; Baud rate is 19200
-; ADC conversion packet length 3 bytes = 30 bits
-; Time to transmit 30 bits at 19200 baud: 0.0015625s = 640 results per second
-;********************************************
-; This is based on Pd_firmware_pde
-; Copyright (C) 2006 Hans-Christoph Steiner
-; This library is free software; you can redistribute it and/or
-; modify it under the terms of the GNU Lesser General Public
-; License as published by the Free Software Foundation; either
-; version 2.1 of the License, or (at your option) any later version.
-;
-; This library is distributed in the hope that it will be useful,
-; but WITHOUT ANY WARRANTY; without even the implied warranty of
-; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-; Lesser General Public License for more details.
-;
-; You should have received a copy of the GNU Lesser General
-; Public License along with this library; if not, write to the
-; Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-; Boston, MA 02111-1307 USA
-;
-; -----------------------------
-; Firmata, the Arduino firmware
-; -----------------------------
-;
-; Firmata turns the Arduino into a Plug-n-Play sensorbox, servo
-; controller, and/or PWM motor/lamp controller.
-;
-; It was originally designed to work with the Pd object [arduino]
-; which is included in Pd-extended. This firmware is intended to
-; work with any host computer software package. It can easily be
-; used with other programs like Max/MSP, Processing, or whatever can
-; do serial communications.;
-; @authors: Hans-Christoph Steiner <hans@at.or.at>
-; help with protocol redesign: Jamie Allen <jamie@heavyside.net>
-; key bugfixes: Georg Holzmann <grh@mur.at>
-; Gerda Strobl <gerda.strobl@student.tugraz.at>
-; @date: 2006-05-19
-; @locations: STEIM, Amsterdam, Netherlands
-; IDMI/Polytechnic University, Brookyn, NY, USA
-; Electrolobby Ars Electronica, Linz, Austria
-;
-;
-; TODO: add pulseIn functionality
-; TODO: add software PWM for servos, etc (servo.h or pulse.h)
-; TODO: redesign protocol to accomodate boards with more I/Os
-; TODO:
-; TODO: add "outputMode all 0/1" command
-; TODO: add cycle markers to mark start of analog, digital, pulseIn, and PWM
-;
-; =========================================================================
- list p=16f767 ; list directive to define processor
- #include <P16F767.inc> ; processor specific variable definitions
-
- __CONFIG _CONFIG1, _CP_OFF & _CCP2_RC1 & _DEBUG_OFF & _VBOR_2_0 & _BOREN_0 & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _HS_OSC
- __CONFIG _CONFIG2, _BORSEN_0 & _IESO_OFF & _FCMEN_OFF
-
-; === CONSTANTS ===========================================================
-B19200 equ d'47' ; time constant for baud rate generator
-B9600 equ d'95' ; time constant for baud rate generator
-; firmware version numbers. The protocol is still changing, so these version
-; numbers are important
-MAJOR_VERSION equ 0
-MINOR_VERSION equ 1
-; firmata protocol
-; ===============
-; data: 0-127
-; control: 128-255
-; computer->Arduino commands
-; --------------------
-; 128-129 UNUSED
-SET_PIN_ZERO_TO_IN equ d'130' ; set digital pin 0 to INPUT
-SET_PIN_ONE_TO_IN equ d'131' ; set digital pin 1 to INPUT
-SET_PIN_TWO_TO_IN equ d'132' ; set digital pin 2 to INPUT
-SET_PIN_THREE_TO_IN equ d'133' ; set digital pin 3 to INPUT
-SET_PIN_FOUR_TO_IN equ d'134' ; set digital pin 4 to INPUT
-SET_PIN_FIVE_TO_IN equ d'135' ; set digital pin 5 to INPUT
-SET_PIN_SIX_TO_IN equ d'136' ; set digital pin 6 to INPUT
-SET_PIN_SEVEN_TO_IN equ d'137' ; set digital pin 7 to INPUT
-SET_PIN_EIGHT_TO_IN equ d'138' ; set digital pin 8 to INPUT
-SET_PIN_NINE_TO_IN equ d'139' ; set digital pin 9 to INPUT
-SET_PIN_TEN_TO_IN equ d'140' ; set digital pin 10 to INPUT
-SET_PIN_ELEVEN_TO_IN equ d'141' ; set digital pin 11 to INPUT
-SET_PIN_TWELVE_TO_IN equ d'142' ; set digital pin 12 to INPUT
-SET_PIN_THIRTEEN_TO_IN equ d'143' ; set digital pin 13 to INPUT
-; 144-149 UNUSED
-DISABLE_DIGITAL_INPUTS equ d'150' ; disable reporting of digital inputs
-ENABLE_DIGITAL_INPUTS equ d'151' ; enable reporting of digital inputs
-; 152-159 UNUSED
-ZERO_ANALOG_INS equ d'160' ; disable reporting on all analog ins
-ONE_ANALOG_IN equ d'161' ; enable reporting for 1 analog in (0)
-TWO_ANALOG_INS equ d'162' ; enable reporting for 2 analog ins (0,1)
-THREE_ANALOG_INS equ d'163' ; enable reporting for 3 analog ins (0-2)
-FOUR_ANALOG_INS equ d'164' ; enable reporting for 4 analog ins (0-3)
-FIVE_ANALOG_INS equ d'165' ; enable reporting for 5 analog ins (0-4)
-SIX_ANALOG_INS equ d'166' ; enable reporting for 6 analog ins (0-5)
-; 167-199 UNUSED
-SET_PIN_ZERO_TO_OUT equ d'200' ; set digital pin 0 to OUTPUT
-SET_PIN_ONE_TO_OUT equ d'201' ; set digital pin 1 to OUTPUT
-SET_PIN_TWO_TO_OUT equ d'202' ; set digital pin 2 to OUTPUT
-SET_PIN_THREE_TO_OUT equ d'203' ; set digital pin 3 to OUTPUT
-SET_PIN_FOUR_TO_OUT equ d'204' ; set digital pin 4 to OUTPUT
-SET_PIN_FIVE_TO_OUT equ d'205' ; set digital pin 5 to OUTPUT
-SET_PIN_SIX_TO_OUT equ d'206' ; set digital pin 6 to OUTPUT
-SET_PIN_SEVEN_TO_OUT equ d'207' ; set digital pin 7 to OUTPUT
-SET_PIN_EIGHT_TO_OUT equ d'208' ; set digital pin 8 to OUTPUT
-SET_PIN_NINE_TO_OUT equ d'209' ; set digital pin 9 to OUTPUT
-SET_PIN_TEN_TO_OUT equ d'210' ; set digital pin 10 to OUTPUT
-SET_PIN_ELEVEN_TO_OUT equ d'211' ; set digital pin 11 to OUTPUT
-SET_PIN_TWELVE_TO_OUT equ d'212' ; set digital pin 12 to OUTPUT
-SET_PIN_THIRTEEN_TO_OUT equ d'213' ; set digital pin 13 to OUTPUT
-; 214-228 UNUSED
-OUTPUT_TO_DIGITAL_PINS equ d'229' ; next two bytes set digital output data
-; 230-239 UNUSED
-REPORT_VERSION equ d'240' ; return the firmware version
-; 240-249 UNUSED
-DISABLE_PWM equ d'250' ; next byte sets pin # to disable
-ENABLE_PWM equ d'251' ; next two bytes set pin # and duty cycle
-DISABLE_SOFTWARE_PWM equ d'252' ; next byte sets pin # to disable
-ENABLE_SOFTWARE_PWM equ d'253' ; next two bytes set pin # and duty cycle
-SET_SOFTWARE_PWM_FREQ equ d'254' ; set master frequency for software PWMs
-; 255 UNUSED
-;***************
-; two byte digital output data format
-; ----------------------
-; 0 get ready for digital input bytes (229)
-; 1 digitalOut 7-13 bitmask
-; 2 digitalOut 0-6 bitmask
-; two byte PWM data format
-; ----------------------
-; 0 get ready for digital input bytes (ENABLE_SOFTWARE_PWM/ENABLE_PWM)
-; 1 pin #
-; 2 duty cycle expressed as 1 byte (255 = 100%)
-; digital input message format
-; ----------------------
-; 0 digital input marker (255/11111111)
-; 1 digital read from Arduino // 7-13 bitmask
-; 2 digital read from Arduino // 0-6 bitmask
-; analog input message format
-; ----------------------
-; 0 analog input marker
-; 1 high byte from analog input pin 0
-; 2 low byte from analog input pin 0
-; 3 high byte from analog input pin 1
-; 4 low byte from analog input pin 1
-; 5 high byte from analog input pin 2
-; 6 low byte from analog input pin 2
-; 7 high byte from analog input pin 3
-; 8 low byte from analog input pin 3
-; 9 high byte from analog input pin 4
-; 10 low byte from analog input pin 4
-; 11 high byte from analog input pin 5
-; 12 low byte from analog input pin 5
-TOTAL_DIGITAL_PINS equ d'14'
-
-INPUT equ d'0' ; these aren't defined in Pd_firmware.pde
-OUTPUT equ d'1' ; these aren't defined in Pd_firmware.pde
-; for comparing along with INPUT and OUTPUT
-PWM equ d'2'
-
-; maximum number of post-command data bytes
-MAX_DATA_BYTES equ d'2'
-
-; == VARIABLES ============================================================
-; this flag says the next serial input will be data
-;byte waitForData = 0;
-waitForData equ 0x20 ; initialize to 0;
-;byte executeMultiByteCommand = 0; // command to execute after getting multi-byte data
-executeMultiByteCommand equ 0x21 ; initialize to 0
-;byte storedInputData[MAX_DATA_BYTES] = {0,0}; // multi-byte data
-storedInputData0 equ 0x22 ; initialize to 0,0
-storedInputData1 equ 0x23 ; initialize to 0,0
-; this flag says the first data byte for the digital outs is next
-;boolean firstInputByte = false;
-firstInputByte equ 0x24 ; initialize to 0
-; this int serves as a bit-wise array to store pin status
-; 0 = INPUT, 1 = OUTPUT
-; int digitalPinStatus;
-digitalPinStatusHi equ 0x25 ; initialize to 0,0
-digitalPinStatusLo equ 0x26 ; initialize to 0,0
-; this byte stores the status of whether PWM is on or not
-; bit 9 = PWM0, bit 10 = PWM1, bit 11 = PWM2
-; the rest of the bits are unused and should remain 0
-;int pwmStatus;
-pwmStatusHi equ 0x27 ; initialize to 0,0
-pwmStatusLo equ 0x28 ; initialize to 0,0
-; this byte stores the status of whether software PWM is on or not
-; 00000010 00000000 means bit 10 is softWarePWM enabled
-;int softPwmStatus;
-softPwmStatusHi equ 0x29 ; initialize to 0,0
-softPwmStatusLo equ 0x2A ; initialize to 0,0
-;boolean digitalInputsEnabled = true;
-digitalInputsEnabled equ 0x2B ; initialize to 1
-;byte analogInputsEnabled = 6;
-analogInputsEnabled equ 0x2C ; initialize to 6;
-;byte analogPin;
-analogPin equ 0x2D ;
-;int analogData;
-analogDataHi equ 0x2E ;
-analogDataLo equ 0x2F ;
-rxBuf equ 0x40 ;
-rxBufEnd equ 0x50 ;
-i equ 0x51 ; local variable in setup()
-pin equ 0x52 ; pin number for pinMode()
-mode equ 0x53 ; pin mode for pinMode()
-maskHi equ 0x54
-maskLo equ 0x55
-rxWrPtr equ 0x56
-rxRdPtr equ 0x57
-inputData equ 0x58
-digitalPin equ 0x59
-transmitByte equ 0x5A
-digitalData equ 0x5B
-fsr_temp equ 0x70 ; variable used for context saving
-w_temp equ 0x71 ; variable used for context saving
-status_temp equ 0x72 ; variable used for context saving
-pclath_temp equ 0x73 ; variable used for context saving
-trisa_shadow equ 0x74
-trisb_shadow equ 0x75
-trisc_shadow equ 0x76
-portb_shadow equ 0x77
-portc_shadow equ 0x78
-; =========================================================================
- ORG 0x000 ; processor reset vector
- goto setup ; 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
- movf PCLATH,w ; move pclath register into w register
- movwf pclath_temp ; save off contents of PCLATH register
-
- btfss PIR1,RCIF
- goto intout
-;receive interrupt
-; 6. Flag bit RCIF will be set when reception is complete and an interrupt will be generated if enable bit RCIE is set.
-; 7. Read the RCSTA register to get the ninth bit (if enabled) and determine if any error occurred during reception.
- bcf STATUS,RP0 ; bank 0
- movf RCSTA,w
- andlw b'00000110' ; Framing, Overrun Errors
- btfss STATUS,Z
- goto RxError
-; 8. Read the 8-bit received data by reading the RCREG register.
-; handle the character by saving it into rxBuf and incrementing rxWrPtr
- movf FSR,w ; first save FSR
- movwf fsr_temp
- movf rxWrPtr,w ; get the pointer to the buffer
- movwf FSR ; into FSR
- movf RCREG,w ; read the character
- movwf INDF ; store it in the buffer
- movf fsr_temp,w ; restore FSR
- movwf FSR
- incf rxWrPtr,f ; point to next slot in buffer
- movlw rxBufEnd ; check for end of buffer
- xorwf rxWrPtr,w
- btfss STATUS,Z
- goto intout ; not yet at end
- movlw rxBuf ; reset pointer to start of buffer
- movwf rxWrPtr
-intout
- movf pclath_temp,w ; retrieve copy of PCLATH register
- movwf PCLATH ; restore pre-isr PCLATH register contents
- 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
-; 9. If any error occurred, clear the error by clearing enable bit CREN.
-RxError
- bcf RCSTA,CREN
- movf RCREG,w
- bsf RCSTA,CREN
- goto intout
-
-; =========================================================================
-;
-; -------------------------------------------------------------------------
-;void setup()
-;{
-setup
- clrf waitForData ; init all the variables
- clrf executeMultiByteCommand
- clrf storedInputData0
- clrf storedInputData1
- clrf firstInputByte
- clrf digitalPinStatusHi
- clrf digitalPinStatusLo
- clrf pwmStatusHi
- clrf pwmStatusLo
- clrf softPwmStatusHi
- clrf softPwmStatusLo
- movlw 1
- movwf digitalInputsEnabled ; initialize to 1
- movlw 6
- movwf analogInputsEnabled ; initialize to 6;
- movlw rxBuf
- movwf rxWrPtr
- movwf rxRdPtr
- clrf portb_shadow
- clrf portc_shadow
- clrf PORTB ; PORTB is cleared anyway at reset
- clrf PORTC ; PORTC is cleared anyway at reset
- movlw 0xFF ; all inputs (they are anyway after reset)
- bsf STATUS,RP0 ; bank 1
- movwf TRISA
- movwf trisa_shadow
- movwf TRISB
- movwf trisb_shadow
- movwf TRISC
- movwf trisc_shadow
- bcf STATUS,RP0 ; bank 0
-; byte i;
-;
-; beginSerial(19200);
- call beginSerial_19200
-; for(i=0; i<TOTAL_DIGITAL_PINS; ++i)
-; {
- clrf i
-; setPinMode(i,INPUT);
-slp_1
- movf i,w
- movwf pin
- movlw INPUT
- movwf mode
- call setPinMode
- incf i,f
- movlw TOTAL_DIGITAL_PINS
- subwf i,w
- btfss STATUS,C
- goto slp_1
-; setup analog pins
-;The following steps should be followed to do an A/D conversion:
-;1. Configure the A/D module:
-; Configure analog pins, voltage reference and digital I/O (ADCON1)
- movlw b'10010101' ; right-justified 10-bit result. VRef+ = RA3, AN0-AN9 analog
- bsf STATUS,RP0 ; bank 1
- movwf ADCON1
- bcf STATUS,RP0 ; bank 0
-; Select A/D input channel (ADCON0)
- movlw b'10000000' ; start with channel 0, 32 Tosc conversion, module off
- movwf ADCON0
-; Select A/D acquisition time (ADCON2)
- movlw b'00101000' ; wait 12Tad
- bsf STATUS,RP0 ; bank 1
- movwf ADCON2
- bcf STATUS,RP0 ; bank 0
-; Select A/D conversion clock (ADCON0)
-; Turn on A/D module (ADCON0)
- bsf ADCON0,ADON
-;2. Configure A/D interrupt (if desired):
-; Clear ADIF bit
-; Set ADIE bit
-; Set PEIE bit
-; Set GIE bit
-;3. Wait the required acquisition time (if required).
-;4. Start conversion:
-; Set GO/DONE bit (ADCON0 register)
-;5. Wait for A/D conversion to complete, by either:
-; Polling for the GO/DONE bit to be cleared
-;OR
-; Waiting for the A/D interrupt
-;6. Read A/D Result registers (ADRESH:ADRESL); clear bit ADIF (if required).
-;7. For next conversion, go to step 1 or step 2 as required. The A/D conversion time per bit is
-; defined as TAD. A minimum wait of 2 TAD is required before the next acquisition starts.
-;
-; Setup Timer2 for hardware PWM (1.002kHz: timer prescale 1:16, PR2=254)
- movlw d'254' ; 903.53Hz
- bsf STATUS,RP0 ; bank 1
- movwf PR2
- bcf STATUS,RP0 ; bank 0
- movlw b'00000111' ; timer on, prescale 1:16
- movwf T2CON
-;
-; }
-;}
-;
-; setup falls through into loop and stays there forever...
-;
-; -------------------------------------------------------------------------
-;void loop()
-;{
-loop
-; checkForInput();
- call checkForInput
-;
-; // read all digital pins, in enabled
-; if(digitalInputsEnabled)
- btfss digitalInputsEnabled,0
- goto lp_1
-; {
-; printByte(ENABLE_DIGITAL_INPUTS);
- movlw ENABLE_DIGITAL_INPUTS
- call printByte
-; transmitDigitalInput(7);
- movlw d'7'
- call transmitDigitalInput
-; checkForInput();
- call checkForInput
-; transmitDigitalInput(0);
- movlw d'0'
- call transmitDigitalInput
-; checkForInput();
- call checkForInput
-; }
-lp_1
-;
-; /* get analog in, for the number enabled */
-; for(analogPin=0; analogPin<analogInputsEnabled; ++analogPin)
- clrf analogPin
-lp_2
- movf analogInputsEnabled,w
- subwf analogPin,w
- btfsc STATUS,C
- goto loop
-; {
-; analogData = analogRead(analogPin);
- call analogRead ; analogRead sets analogDataHi and analogDataLo according to analogPin
-; // these two bytes get converted back into the whole number in Pd
-; // the higher bits should be zeroed so that the 8th bit doesn't get set
-; printByte(ONE_ANALOG_IN + analogPin);
- movlw ONE_ANALOG_IN
- addwf analogPin,w
- call printByte
-; printByte(analogData >> 7); // bitshift the big stuff into the output byte
- rlf analogDataLo,w ; bit7 into C
- rlf analogDataHi,w ; C into bit0
- andlw b'00000111' ; only 10 bits
- call printByte
-; printByte(analogData % 128); // mod by 32 for the small byte
- movf analogDataLo,w
- andlw b'01111111'
- call printByte
-; checkForInput();
- call checkForInput
- incf analogPin,f
- goto lp_2
-; }
-;}
-;
-; ============subroutines======================================================
-;
-; -------------------------------------------------------------------------
-; this function checks to see if there is data waiting on the serial port
-; then processes all of the stored data
-;void checkForInput()
-;{
-checkForInput
- movf rxWrPtr,w
- xorwf rxRdPtr,w
- btfsc STATUS,Z
- return
-; if(serialAvailable())
-; {
-; while(serialAvailable())
-; {
- movf rxRdPtr,w
- movwf FSR
- movf INDF,w
-; processInput( (byte)serialRead() );
- call processInput
- incf rxRdPtr,f
- movlw rxBufEnd
- xorwf rxRdPtr,w
- btfss STATUS,Z
- goto checkForInput
- movlw rxBuf ; wrap to start of buffer
- movwf rxRdPtr
- goto checkForInput
-; }
-; }
-;}
-; -------------------------------------------------------------------------
-; printByte: on entry w contains the byte to send
-printByte
- bsf STATUS,RP0 ; bank 1
- btfss TXSTA,TRMT
- goto $-1
- bcf STATUS,RP0 ; bank 0
- movwf TXREG
- return
-; -------------------------------------------------------------------------
-beginSerial_19200 ; setup USART for 19200 asynchronous receive and transmit, 8bitsNoParity1Stop
-; Bits TRISC<7:6> have to be set in order to configure pins RC6/TX/CK and RC7/RX/DT as the USART.
-; (They are set at reset)
- bsf STATUS,RP0 ; bank 1
-; When setting up an Asynchronous Transmission, follow these steps:
-; 1. Initialize the SPBRG register for the appropriate baud rate. If a high-speed baud rate is desired,
-; set bit BRGH (see Section 11.1 “AUSART Baud Rate Generator (BRG)”).
-; * * * For 14.745600MHz crystal clock, SPBRG=47, BRGH=1 gives 19200 baud. * * *
- movlw B19200 ; = d'47'
- movwf SPBRG
- bsf TXSTA,BRGH
-; 2. Enable the asynchronous serial port by clearing bit SYNC and setting bit SPEN.
- bcf STATUS,RP0 ; bank 0
- bsf RCSTA,SPEN
-; 3. If interrupts are desired, then set enable bit TXIE.
-; 4. If 9-bit transmission is desired, then set transmit bit TX9.
-; 5. Enable the transmission by setting bit TXEN which will also set bit TXIF.
- bsf STATUS,RP0 ; bank 1
- bsf TXSTA,TXEN
-; 6. If 9-bit transmission is selected, the ninth bit should be loaded in bit TX9D.
-; 7. Load data to the TXREG register (starts transmission).
-; 8. If using interrupts, ensure that GIE and PEIE (bits 7 and 6) of the INTCON register are set.
-;When setting up an Asynchronous Reception, follow these steps:
-; 1. Initialize the SPBRG register for the appropriate baud rate. If a high-speed baud rate is desired,
-; set bit BRGH (see Section 11.1 “AUSART Baud Rate Generator (BRG)”).
-; 2. Enable the asynchronous serial port by clearing bit SYNC and setting bit SPEN.
-; 3. If interrupts are desired, then set enable bit RCIE.
- bsf PIE1,RCIE
-; 4. If 9-bit reception is desired, then set bit RX9.
-; 5. Enable the reception by setting bit CREN.
- bcf STATUS,RP0 ; bank 0
- bsf RCSTA,CREN
-; 6. Flag bit RCIF will be set when reception is complete and an interrupt will be generated if enable bit RCIE is set.
-; 7. Read the RCSTA register to get the ninth bit (if enabled) and determine if any error occurred during reception.
-; 8. Read the 8-bit received data by reading the RCREG register.
-; 9. If any error occurred, clear the error by clearing enable bit CREN.
-; 10. If using interrupts, ensure that GIE and PEIE (bits 7 and 6) of the INTCON register are set.
- bsf INTCON,PEIE
- bsf INTCON,GIE
- return
-; -------------------------------------------------------------------------
-;void transmitDigitalInput(byte startPin)
-;{
-transmitDigitalInput ; on entry w contains startPin
-; byte i;
-; byte digitalPin;
-;// byte digitalPinBit;
-; byte transmitByte = 0;
- clrf transmitByte
-; byte digitalData;
-;
- movwf digitalPin
- movwf i
- clrf maskLo
- clrf maskHi
- bsf STATUS,C
-tdilp_1 ; set up the mask with bit startPin set
- rlf maskLo,f
- rlf maskHi,f
- movf i,f
- btfsc STATUS,Z
- goto tdi_1 ; mask is at startPin
- decf i,f
- goto tdilp_1
-; for(i=0;i<7;++i)
-; {
-tdi_2
-; digitalPin = i+startPin;
- incf i,f ; ++i
- movlw d'7'
- xorwf i,w ; i == 7?
- btfsc STATUS,Z
- goto tdi_3 ; yes
- incf digitalPin,f ; no
- bcf STATUS,C
- rlf maskLo,f
- rlf maskHi,f
-;/* digitalPinBit = OUTPUT << digitalPin;
-;// only read the pin if its set to input
-;if(digitalPinStatus & digitalPinBit) {
-;digitalData = 0; // pin set to OUTPUT, don't read
-;}
-;else if( (digitalPin >= 9) && (pwmStatus & (1 << digitalPin)) ) {
-;digitalData = 0; // pin set to PWM, don't read
-;}*/
-; if( !(digitalPinStatus & (1 << digitalPin)) )
-tdi_1
- movf digitalPinStatusLo,w
- andwf maskLo,w ; maskLo is lowbyte of 1<<digitalPin
- btfss STATUS,Z
- goto tdi_2
- movf digitalPinStatusHi,w
- andwf maskHi,w
- btfss STATUS,Z
- goto tdi_2
-; {
-;
-; digitalData = (byte) digitalRead(digitalPin);
- call digitalRead ; sets carry to match pin w input data
-; transmitByte = transmitByte + ((1 << i) * digitalData);
-; rlf transmitByte,f ; carry bit shifts into transmitByte
- rrf transmitByte,f ; carry bit shifts into transmitByte
- goto tdi_2
-; }
-; }
-; printByte(transmitByte);
-tdi_3
- bcf STATUS,C ; shift 0 into high bit
- rrf transmitByte,f
- movf transmitByte,w
- call printByte
-;}
- return
-;
-; -------------------------------------------------------------------------
-digitalRead0
- btfsc PORTC,7
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead1
- btfsc PORTC,6
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead2
- btfsc PORTC,5
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead3
- btfsc PORTC,4
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead4
- btfsc PORTC,3
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead5
- btfsc PORTB,0
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead6
- btfsc PORTB,4
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead7
- btfsc PORTB,7
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead8
- btfsc PORTB,6
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead9
- btfsc PORTB,5
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead10
- btfsc PORTC,2
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead11
- btfsc PORTC,1
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead12
- btfsc PORTC,0
- bsf STATUS,C
- return
-; -------------------------------------------------------------------------
-digitalRead13
- btfsc PORTB,1
- bsf STATUS,C
- return
-;
-; -------------------------------------------------------------------------
-analogRead0 ; AN0
- movlw b'10000101' ; Fosc/32 channel0 Go On
- goto analogWait
-; -------------------------------------------------------------------------
-analogRead1 ; AN1
- movlw b'10001101' ; Fosc/32 channel1 Go On
- goto analogWait
-; -------------------------------------------------------------------------
-analogRead2 ; AN2
- movlw b'10010101' ; Fosc/32 channel2 Go On
- goto analogWait
-; -------------------------------------------------------------------------
-analogRead3 ; AN4
- movlw b'10100101' ; Fosc/32 channel4 Go On
- goto analogWait
-; -------------------------------------------------------------------------
-analogRead4 ; AN8
- movlw b'10000111' ; Fosc/32 channel8 Go On
- goto analogWait
-; -------------------------------------------------------------------------
-analogRead5 ; AN9
- movlw b'10001111' ; Fosc/32 channel9 Go On
- goto analogWait
-; -------------------------------------------------------------------------
-analogWait
- movwf ADCON0
-;3. Wait the required acquisition time (if required).
-; we set 12Tad in ADCON2
-;4. Start conversion:
-; Set GO/DONE bit (ADCON0 register)
-;5. Wait for A/D conversion to complete, by either:
-; Polling for the GO/DONE bit to be cleared
- btfsc ADCON0,GO_DONE
- goto $-1
-;OR
-; Waiting for the A/D interrupt
-;6. Read A/D Result registers (ADRESH:ADRESL); clear bit ADIF (if required).
- movf ADRESH,w
- movwf analogDataHi
- bsf STATUS,RP0 ; bank 1
- movf ADRESL,w
- bcf STATUS,RP0 ; bank 0
- movwf analogDataLo
-;7. For next conversion, go to step 1 or step 2 as required. The A/D conversion time per bit is
-; defined as TAD. A minimum wait of 2 TAD is required before the next acquisition starts.
- return
-; -------------------------------------------------------------------------
-; this function sets the pin mode to the correct state and sets the relevant
-; bits in the two bit-arrays that track Digital I/O and PWM status
-;void setPinMode(int pin, int mode)
-;{
-; if(mode == INPUT)
-; {
-setPinMode ; on entry pin contains the digital pin number, mode contains the mode
- movlw INPUT
- xorwf mode,w
- btfss STATUS,Z
- goto setPinToOutOrPwm
- goto setPinToIn
-; digitalPinStatus = digitalPinStatus &~ (1 << pin);
-; pwmStatus = pwmStatus &~ (1 << pin);
-; pinMode(pin,INPUT);
-; -------------------------------------------------------------------------
-setPinZeroToIn ; pin0 is RX!!!
- bcf digitalPinStatusLo,0
- bcf pwmStatusLo,0
- bsf trisc_shadow,7
-write_trisc
- movf trisc_shadow,w
- bsf STATUS,RP0 ; bank 1
- movwf TRISC ; was bsf TRISC,7
- bcf STATUS,RP0 ; bank 0
- return
-; -------------------------------------------------------------------------
-setPinOneToIn ; pin1 is TX!!!!
- bcf digitalPinStatusLo,1
- bcf pwmStatusLo,1
- bsf trisc_shadow,6
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinTwoToIn
- bcf digitalPinStatusLo,2
- bcf pwmStatusLo,2
- bsf trisc_shadow,5
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinThreeToIn
- bcf digitalPinStatusLo,3
- bcf pwmStatusLo,3
- bsf trisc_shadow,4
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinFourToIn
- bcf digitalPinStatusLo,4
- bcf pwmStatusLo,4
- bsf trisc_shadow,3
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinFiveToIn
- bcf digitalPinStatusLo,5
- bcf pwmStatusLo,5
- bsf trisb_shadow,0
-write_trisb
- movf trisb_shadow,w
- bsf STATUS,RP0 ; bank 1
- movwf TRISB ; was bsf TRISB,0
- bcf STATUS,RP0 ; bank 0
- return
-; -------------------------------------------------------------------------
-setPinSixToIn
- bcf digitalPinStatusLo,6
- bcf pwmStatusLo,6
- bsf trisb_shadow,4
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinSevenToIn
- bcf digitalPinStatusLo,7
- bcf pwmStatusLo,7
- bsf trisb_shadow,7
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinEightToIn
- bcf digitalPinStatusHi,0
- bcf pwmStatusHi,0
- bsf trisb_shadow,6
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinNineToIn
- bcf digitalPinStatusHi,1
- bcf pwmStatusHi,1
- bsf trisb_shadow,5
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinTenToIn
- bcf digitalPinStatusHi,2
- bcf pwmStatusHi,2
- bsf trisc_shadow,2
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinElevenToIn
- bcf digitalPinStatusHi,3
- bcf pwmStatusHi,3
- bsf trisc_shadow,1
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinTwelveToIn
- bcf digitalPinStatusHi,4
- bcf pwmStatusHi,4
- bsf trisc_shadow,0
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinThirteenToIn
- bcf digitalPinStatusHi,5
- bcf pwmStatusHi,5
- bsf trisb_shadow,1
- goto write_trisb
-; }
-; else if(mode == OUTPUT)
-; {
-; -------------------------------------------------------------------------
-setPinToOutOrPwm
- movlw OUTPUT
- xorwf mode,w
- btfsc STATUS,Z
- goto setPinToPwmOrNo
- goto setPinToOut
-; digitalPinStatus = digitalPinStatus | (1 << pin);
-; pwmStatus = pwmStatus &~ (1 << pin);
-; pinMode(pin,OUTPUT);
-; -------------------------------------------------------------------------
-setPinZeroToOut ; pin0 is RX!!! Don't allow this to happen! TRISC.7 must be 1
-; bsf digitalPinStatusLo,0
-; bcf pwmStatusLo,0
-; bcf trisc_shadow,7
-; goto write_trisc
- return
-; -------------------------------------------------------------------------
-setPinOneToOut ; pin1 is TX!!!! Don't allow this to happen! TRISC.6 must be 1
-; bsf digitalPinStatusLo,1
-; bcf pwmStatusLo,1
-; bcf trisc_shadow,6
-; goto write_trisc
- return
-; -------------------------------------------------------------------------
-setPinTwoToOut
- bsf digitalPinStatusLo,2
- bcf pwmStatusLo,2
- bcf trisc_shadow,5
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinThreeToOut
- bsf digitalPinStatusLo,3
- bcf pwmStatusLo,3
- bcf trisc_shadow,4
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinFourToOut
- bsf digitalPinStatusLo,4
- bcf pwmStatusLo,4
- bcf trisc_shadow,3
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinFiveToOut
- bsf digitalPinStatusLo,5
- bcf pwmStatusLo,5
- bcf trisb_shadow,0
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinSixToOut
- bsf digitalPinStatusLo,6
- bcf pwmStatusLo,6
- bcf trisb_shadow,4
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinSevenToOut
- bsf digitalPinStatusLo,7
- bcf pwmStatusLo,7
- bcf trisb_shadow,7
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinEightToOut
- bsf digitalPinStatusHi,0
- bcf pwmStatusHi,0
- bcf trisb_shadow,6
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinNineToOut
- bsf digitalPinStatusHi,1
- bcf pwmStatusHi,1
- bcf trisb_shadow,5
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinTenToOut
- bsf digitalPinStatusHi,2
- bcf pwmStatusHi,2
- bcf trisc_shadow,2
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinElevenToOut
- bsf digitalPinStatusHi,3
- bcf pwmStatusHi,3
- bcf trisc_shadow,1
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinTwelveToOut
- bsf digitalPinStatusHi,4
- bcf pwmStatusHi,4
- bcf trisc_shadow,0
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinThirteenToOut
- bsf digitalPinStatusHi,5
- bcf pwmStatusHi,5
- bcf trisb_shadow,1
- goto write_trisb
-; }
-; else if( (mode == PWM) && (pin >= 9) && (pin <= 11) )
-; {
-; -------------------------------------------------------------------------
-setPinToPwmOrNo
- movlw PWM
- xorwf mode,w
- btfsc STATUS,Z
- return ; no more choices
- goto setPinToPwm
-; digitalPinStatus = digitalPinStatus | (1 << pin);
-; pwmStatus = pwmStatus | (1 << pin);
-; pinMode(pin,OUTPUT);
-; -------------------------------------------------------------------------
-setPinZeroToPWM ; pin0 is RX!!! Don't allow this to happen! TRISC.7 must be 1
-; bsf digitalPinStatusLo,0
-; bsf pwmStatusLo,0
-; bcf trisc_shadow,7
-; goto write_trisc
-; bsf STATUS,RP0 ; bank 1
-; bcf TRISC,7
-; bcf STATUS,RP0 ; bank 0
- return
-; -------------------------------------------------------------------------
-setPinOneToPWM ; pin1 is TX!!!! Don't allow this to happen! TRISC.6 must be 1
-; bsf digitalPinStatusLo,1
-; bsf pwmStatusLo,1
-; bcf trisc_shadow,6
-; goto write_trisc
-; bsf STATUS,RP0 ; bank 1
-; bcf TRISC,6
-; bcf STATUS,RP0 ; bank 0
- return
-; -------------------------------------------------------------------------
-setPinTwoToPWM
- bsf digitalPinStatusLo,2
- bsf pwmStatusLo,2
- bcf trisc_shadow,5
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinThreeToPWM
- bsf digitalPinStatusLo,3
- bsf pwmStatusLo,3
- bcf trisc_shadow,4
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinFourToPWM
- bsf digitalPinStatusLo,4
- bsf pwmStatusLo,4
- bcf trisc_shadow,3
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinFiveToPWM
- bsf digitalPinStatusLo,5
- bsf pwmStatusLo,5
- bcf trisb_shadow,0
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinSixToPWM
- bsf digitalPinStatusLo,6
- bsf pwmStatusLo,6
- bcf trisb_shadow,4
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinSevenToPWM
- bsf digitalPinStatusLo,7
- bsf pwmStatusLo,7
- bcf trisb_shadow,7
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinEightToPWM
- bsf digitalPinStatusHi,0
- bsf pwmStatusHi,0
- bcf trisb_shadow,6
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinNineToPWM
- bsf digitalPinStatusHi,1
- bsf pwmStatusHi,1
- bcf trisb_shadow,5
- goto write_trisb
-; -------------------------------------------------------------------------
-setPinTenToPWM
- bsf digitalPinStatusHi,2
- bsf pwmStatusHi,2
- bcf trisc_shadow,2
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinElevenToPWM
- bsf digitalPinStatusHi,3
- bsf pwmStatusHi,3
- bcf trisc_shadow,1
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinTwelveToPWM
- bsf digitalPinStatusHi,4
- bsf pwmStatusHi,4
- bcf trisc_shadow,0
- goto write_trisc
-; -------------------------------------------------------------------------
-setPinThirteenToPWM
- bsf digitalPinStatusHi,5
- bsf pwmStatusHi,5
- bcf trisb_shadow,1
- goto write_trisb
-; }
-;}
-; return
-; -------------------------------------------------------------------------
-;
-;void setSoftPwm (int pin, byte pulsePeriod) {
-; byte i;
-; /* for(i=0; i<7; ++i) {
-; mask = 1 << i;
-; if(digitalPinStatus & mask) {
-; digitalWrite(i, inputData & mask);
-; }
-; }
-; */
-; //read timer type thing
-;
-; //loop through each pin, turn them on if selected
-; //softwarePWMStatus
-; //check timer type thing against pulsePeriods for each pin
-; //throw pin low if expired
-;}
-;
-; -------------------------------------------------------------------------
-;void setSoftPwmFreq(byte freq) {
-;}
-;
-;
-; -------------------------------------------------------------------------
-;void disSoftPwm(int pin) {
-; //throw pin low
-;
-;}
-;
-write_portc
- movf portc_shadow,w
- movwf PORTC
- return
-write_portb
- movf portb_shadow,w
- movwf PORTB
- return
-; -------------------------------------------------------------------------
-digitalWrite0 ; write carry bit to digital pin 0 (Pin0 is RX!!!)
- bsf portc_shadow,7
- btfss STATUS,C
- bcf portc_shadow,7
- goto write_portc
-; -------------------------------------------------------------------------
-digitalWrite1 ; write carry bit to digital pin 1 (Pin1 is tX!!!)
- bsf portc_shadow,6
- btfss STATUS,C
- bcf portc_shadow,6
- goto write_portc
-; -------------------------------------------------------------------------
-digitalWrite2 ; write carry bit to digital pin 2
- bsf portc_shadow,5
- btfss STATUS,C
- bcf portc_shadow,5
- goto write_portc
-; -------------------------------------------------------------------------
-digitalWrite3 ; write carry bit to digital pin 3
- bsf portc_shadow,4
- btfss STATUS,C
- bcf portc_shadow,4
- goto write_portc
-; -------------------------------------------------------------------------
-digitalWrite4 ; write carry bit to digital pin 4
- bsf portc_shadow,3
- btfss STATUS,C
- bcf portc_shadow,3
- goto write_portc
-; -------------------------------------------------------------------------
-digitalWrite5 ; write carry bit to digital pin 5
- bsf portb_shadow,0
- btfss STATUS,C
- bcf portb_shadow,0
- goto write_portb
-; -------------------------------------------------------------------------
-digitalWrite6 ; write carry bit to digital pin 6
- bsf portb_shadow,4
- btfss STATUS,C
- bcf portb_shadow,4
- goto write_portb
-; -------------------------------------------------------------------------
-digitalWrite7 ; write carry bit to digital pin 7
- bsf portb_shadow,7
- btfss STATUS,C
- bcf portb_shadow,7
- goto write_portb
-; -------------------------------------------------------------------------
-digitalWrite8 ; write carry bit to digital pin 8
- bsf portb_shadow,6
- btfss STATUS,C
- bcf portb_shadow,6
- goto write_portb
-; -------------------------------------------------------------------------
-digitalWrite9 ; write carry bit to digital pin 9
- bsf portb_shadow,5
- btfss STATUS,C
- bcf portb_shadow,5
- goto write_portb
-; -------------------------------------------------------------------------
-digitalWrite10 ; write carry bit to digital pin 10
- bsf portc_shadow,2
- btfss STATUS,C
- bcf portc_shadow,2
- goto write_portc
-; -------------------------------------------------------------------------
-digitalWrite11 ; write carry bit to digital pin 11
- bsf portc_shadow,1
- btfss STATUS,C
- bcf portc_shadow,1
- goto write_portc
-; -------------------------------------------------------------------------
-digitalWrite12 ; write carry bit to digital pin 12
- bsf portc_shadow,0
- btfss STATUS,C
- bcf portc_shadow,0
- goto write_portc
-; -------------------------------------------------------------------------
-digitalWrite13 ; write carry bit to digital pin 13
- bsf portb_shadow,1
- btfss STATUS,C
- bcf portb_shadow,1
- goto write_portb
-;
-;
-; -------------------------------------------------------------------------
-disableDigitalInputs
- clrf digitalInputsEnabled
- return
-; -------------------------------------------------------------------------
-enableDigitalInputs
- bsf digitalInputsEnabled,0
- return
-; -------------------------------------------------------------------------
-setZeroAnalogIns
- clrw
- goto setAnalogIns
-; -------------------------------------------------------------------------
-setOneAnalogIn
- movlw d'1'
- goto setAnalogIns
-; -------------------------------------------------------------------------
-setTwoAnalogIns
- movlw d'2'
- goto setAnalogIns
-; -------------------------------------------------------------------------
-setThreeAnalogIns
- movlw d'3'
- goto setAnalogIns
-; -------------------------------------------------------------------------
-setFourAnalogIns
- movlw d'4'
- goto setAnalogIns
-; -------------------------------------------------------------------------
-setFiveAnalogIns
- movlw d'5'
- goto setAnalogIns
-; -------------------------------------------------------------------------
-setSixAnalogIns
- movlw d'6'
-; -------------------------------------------------------------------------
-setAnalogIns
-; analogInputsEnabled = inputData - ZERO_ANALOG_INS;
-; break;
- movwf analogInputsEnabled
- return
-; -------------------------------------------------------------------------
-; case ENABLE_PWM:
-enablePwm
-; case ENABLE_SOFTWARE_PWM:
-enableSoftPwm
-; waitForData = 2; // 2 bytes needed (pin#, dutyCycle)
- movlw d'2'
- movwf waitForData
-; executeMultiByteCommand = inputData;
- movf inputData,w
- movwf executeMultiByteCommand
-; break;
- return
-; -------------------------------------------------------------------------
-; case DISABLE_PWM:
-disablePwm
-; case SET_SOFTWARE_PWM_FREQ:
-setSoftPwmFreq
-; case DISABLE_SOFTWARE_PWM:
-disableSoftPwm
-; waitForData = 1; // 1 byte needed (pin#)
- movlw d'1'
- movwf waitForData
-; executeMultiByteCommand = inputData;
- movf inputData,w
- movwf executeMultiByteCommand
-; break;
- return
-; -------------------------------------------------------------------------
-; case OUTPUT_TO_DIGITAL_PINS: // bytes to send to digital outputs
-setOutputToDigitalPins
-; firstInputByte = true;
- bsf firstInputByte,0
-; break;
- return
-; -------------------------------------------------------------------------
-; case REPORT_VERSION:
-reportVersion
-; printByte(REPORT_VERSION);
- movlw REPORT_VERSION
- call printByte
-; printByte(MAJOR_VERSION);
- movlw MAJOR_VERSION
- call printByte
-; printByte(MINOR_VERSION);
- movlw MINOR_VERSION
- call printByte
-; break;
-; }
-; }
- return
-;}
-;
-; -------------------------------------------------------------------------
-; processInput() is called whenever a byte is available on the
-; Arduino's serial port. This is where the commands are handled.
-;
-;void processInput(byte inputData)
-;{
-processInput ; on entry w contains a byte of input data from rxBuf
-; int i;
-; int mask;
- movwf inputData ; save the new byte
-;
-; // a few commands have byte(s) of data following the command
-; if( waitForData > 0)
-; {
- movf waitForData,f
- btfsc STATUS,Z
- goto pi_1
-; waitForData--;
- decf waitForData,f
-; storedInputData[waitForData] = inputData;
- movlw storedInputData0
- addwf waitForData,w
- movwf FSR
- movf inputData,w
- movwf INDF
-;
-; if(executeMultiByteCommand && (waitForData==0))
- movf executeMultiByteCommand,f
- btfsc STATUS,Z
- return ; executeMultiByteCommand == 0
- movf waitForData,f
- btfss STATUS,Z
- return ; waitForData != 0
-; {
-; //we got everything
- goto doMultiByteCommand
-; -------------------------------------------------------------------------
-mb_enablePwm
-; case ENABLE_PWM: ; 251
-; setPinMode(storedInputData[1],PWM);
- movlw PWM
- movwf mode
- movf storedInputData1,w
- movwf pin
- sublw d'9' ; 9-PIN pins 9,10,11 only
- btfsc STATUS,Z
- goto setPWM9
- addlw d'1'
- btfsc STATUS,Z
- goto setPWM10
- addlw d'1'
- btfss STATUS,Z
- goto pi_6 ; not a hardware PWM pin
-setPWM11
- call setPinMode
- movf storedInputData0,w
- movwf CCPR2L
- movlw b'00001100' ; PWM mode, PWM LSBs=00
- movwf CCP2CON
- goto pi_6
-setPWM10
- call setPinMode
- movf storedInputData0,w
- movwf CCPR1L
- movlw b'00001100' ; PWM mode, PWM LSBs=00
- movwf CCP1CON
- goto pi_6
-setPWM9
- call setPinMode
- movf storedInputData0,w
- bsf STATUS,RP0 ; bank 1
- movwf CCPR3L
- movlw b'00001100' ; PWM mode, PWM LSBs=00
- movwf CCP3CON
- bcf STATUS,RP0 ; bank 0
- goto pi_6
-
-; analogWrite(storedInputData[1], storedInputData[0]);
-; analogWrite from wiring.c (http://svn.berlios.de/svnroot/repos/arduino/trunk/targets/arduino/wiring.c):
-;// Right now, PWM output only works on the pins with
-;// hardware support. These are defined in the appropriate
-;// pins_*.c file. For the rest of the pins, we default
-;// to digital output.
-;void analogWrite(int pin, int val)
-;{
-; // We need to make sure the PWM output is enabled for those pins
-; // that support it, as we turn it off when digitally reading or
-; // writing with them. Also, make sure the pin is in output mode
-; // for consistenty with Wiring, which doesn't require a pinMode
-; // call for the analog output pins.
-; pinMode(pin, OUTPUT);
-;
-; if (analogOutPinToTimer(pin) == TIMER1A) {
-; // connect pwm to pin on timer 1, channel A
-; sbi(TCCR1A, COM1A1);
-; // set pwm duty
-; OCR1A = val;
-; } else if (analogOutPinToTimer(pin) == TIMER1B) {
-; // connect pwm to pin on timer 1, channel B
-; sbi(TCCR1A, COM1B1);
-; // set pwm duty
-; OCR1B = val;
-;#if defined(__AVR_ATmega168__)
-; } else if (analogOutPinToTimer(pin) == TIMER0A) {
-; // connect pwm to pin on timer 0, channel A
-; sbi(TCCR0A, COM0A1);
-; // set pwm duty
-; OCR0A = val;
-; } else if (analogOutPinToTimer(pin) == TIMER0B) {
-; // connect pwm to pin on timer 0, channel B
-; sbi(TCCR0A, COM0B1);
-; // set pwm duty
-; OCR0B = val;
-; } else if (analogOutPinToTimer(pin) == TIMER2A) {
-; // connect pwm to pin on timer 2, channel A
-; sbi(TCCR2A, COM2A1);
-; // set pwm duty
-; OCR2A = val;
-; } else if (analogOutPinToTimer(pin) == TIMER2B) {
-; // connect pwm to pin on timer 2, channel B
-; sbi(TCCR2A, COM2B1);
-; // set pwm duty
-; OCR2B = val;
-;#else
-; } else if (analogOutPinToTimer(pin) == TIMER2) {
-; // connect pwm to pin on timer 2, channel B
-; sbi(TCCR2, COM21);
-; // set pwm duty
-; OCR2 = val;
-;#endif
-; } else if (val < 128)
-; digitalWrite(pin, LOW);
-; else
-; digitalWrite(pin, HIGH);
-;}
-; end of analogWrite() from wiring.c
-; break;
- goto pi_6
-; -------------------------------------------------------------------------
-mb_disablePwm
-; case DISABLE_PWM: ; 250
-; setPinMode(storedInputData[0],INPUT);
- movlw INPUT
- movwf mode
- movf storedInputData0,w
- movwf pin
- sublw d'9' ; 9 - PIN, pins 9,10,11 only
- btfsc STATUS,Z
- goto disPWM9
- addlw d'1'
- btfsc STATUS,Z
- goto disPWM10
- addlw d'1'
- btfss STATUS,Z
- goto pi_6 ; not a hardware PWM pin
-disPWM11
- call setPinMode
- clrf CCP2CON
- goto pi_6 ; not a hardware PWM pin
-disPWM10
- call setPinMode
- clrf CCP1CON
- goto pi_6 ; not a hardware PWM pin
-disPWM9
- call setPinMode
- bsf STATUS,RP0 ; bank 1
- clrf CCP3CON
- bcf STATUS,RP0 ; bank 0
- goto pi_6 ; not a hardware PWM pin
-; break;
-; -------------------------------------------------------------------------
-mb_enableSoftPwm
-; case ENABLE_SOFTWARE_PWM: ; 253
-; setPinMode(storedInputData[1],PWM);
- movf storedInputData1,w
- movwf pin
- movlw PWM
- movwf mode
- call setPinMode
-; setSoftPwm(storedInputData[1], storedInputData[0]);
-; break;
- goto pi_6
-; -------------------------------------------------------------------------
-mb_disableSoftPwm
-; case DISABLE_SOFTWARE_PWM: ; 252
-; disSoftPwm(storedInputData[0]);
-; break;
- goto pi_6
-; -------------------------------------------------------------------------
-mb_setSoftPwmFreq
-; case SET_SOFTWARE_PWM_FREQ: ; 254
-; setSoftPwmFreq(storedInputData[0]);
-; break;
- goto pi_6
-; }
-; -------------------------------------------------------------------------
-pi_6
-; executeMultiByteCommand = 0;
- clrf executeMultiByteCommand
-; }
- return
-; }
-; -------------------------------------------------------------------------
-; else if(inputData < 128)
-; {
-pi_1
- btfsc inputData,7
- goto doCommand
-; if(firstInputByte)
- movf pwmStatusLo,w
- xorlw 0xFF
- andwf digitalPinStatusLo,w
- movwf maskLo
- movf pwmStatusHi,w
- xorlw 0xFF
- andwf digitalPinStatusHi,w
- movwf maskHi
- btfss firstInputByte,0
- goto pi_8
-; {
-; // output data for pins 7-13
-; for(i=7; i<TOTAL_DIGITAL_PINS; ++i)
-; {
-; mask = 1 << i;
-; if( (digitalPinStatus & mask) && !(pwmStatus & mask) )
-; {
-; // inputData is a byte and mask is an int, so align the high part of mask
- btfss maskLo,7
- goto pi_12
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,0
- bsf STATUS,C ; unless it's one
- call digitalWrite7
-pi_12
- btfss maskHi,0
- goto pi_11
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,1
- bsf STATUS,C ; unless it's one
- call digitalWrite8
-pi_11
- btfss maskHi,1
- goto pi_10
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,2
- bsf STATUS,C ; unless it's one
- call digitalWrite9
-pi_10
- btfss maskHi,2
- goto pi_09
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,3
- bsf STATUS,C ; unless it's one
- call digitalWrite10
-pi_09
- btfss maskHi,3
- goto pi_08
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,4
- bsf STATUS,C ; unless it's one
- call digitalWrite11
-pi_08
- btfss maskHi,4
- goto pi_07
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,5
- bsf STATUS,C ; unless it's one
- call digitalWrite12
-pi_07
- btfss maskHi,5
- goto pi_06
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,6
- bsf STATUS,C ; unless it's one
- call digitalWrite13
-; digitalWrite(i, inputData & (mask >> 7));
-; }
-; }
-pi_06
-; firstInputByte = false;
- clrf firstInputByte
- return
-; }
-; else
-pi_8
-; { //
-; for(i=0; i<7; ++i)
-; {
-; mask = 1 << i;
-; if( (digitalPinStatus & mask) && !(pwmStatus & mask) )
-; {
-; digitalWrite(i, inputData & mask);
- btfss maskLo,0
- goto pi_13
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,0
- bsf STATUS,C ; unless it's one
- call digitalWrite0
-pi_13
- btfss maskLo,1
- goto pi_14
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,1
- bsf STATUS,C ; unless it's one
- call digitalWrite1
-pi_14
- btfss maskLo,2
- goto pi_15
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,2
- bsf STATUS,C ; unless it's one
- call digitalWrite2
-pi_15
- btfss maskLo,3
- goto pi_16
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,3
- bsf STATUS,C ; unless it's one
- call digitalWrite3
-pi_16
- btfss maskLo,4
- goto pi_17
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,4
- bsf STATUS,C ; unless it's one
- call digitalWrite4
-pi_17
- btfss maskLo,5
- goto pi_18
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,5
- bsf STATUS,C ; unless it's one
- call digitalWrite5
-pi_18
- btfss maskLo,6
- goto pi_19
- bcf STATUS,C ; the data bit is zero
- btfsc inputData,6
- bsf STATUS,C ; unless it's one
- call digitalWrite6
-; }
-; }
-; }
-pi_19
- return
-; }
-
- ORG 0x400 ; table lookup works better when it doesn't cross a 256-byte page boundary
-; -------------------------------------------------------------------------
-; else
-; {
-; inputData > 127
-; switch (inputData)
-; {
-doCommand
- movlw HIGH commandTab
- movwf PCLATH
- movf inputData,w
- andlw 0x7F ; skip the first 127 values
- addwf PCL,f ; jump to command
-commandTab
-; 128-129 UNUSED
- return ; 128
- return ; 129
- goto setPinZeroToIn ;SET_PIN_ZERO_TO_IN equ d'130' ; set digital pin 0 to INPUT
- goto setPinOneToIn ;SET_PIN_ONE_TO_IN equ d'131' ; set digital pin 1 to INPUT
- goto setPinTwoToIn ;SET_PIN_TWO_TO_IN equ d'132' ; set digital pin 2 to INPUT
- goto setPinThreeToIn ;SET_PIN_THREE_TO_IN equ d'133' ; set digital pin 3 to INPUT
- goto setPinFourToIn ;SET_PIN_FOUR_TO_IN equ d'134' ; set digital pin 4 to INPUT
- goto setPinFiveToIn ;SET_PIN_FIVE_TO_IN equ d'135' ; set digital pin 5 to INPUT
- goto setPinSixToIn ;SET_PIN_SIX_TO_IN equ d'136' ; set digital pin 6 to INPUT
- goto setPinSevenToIn ;SET_PIN_SEVEN_TO_IN equ d'137' ; set digital pin 7 to INPUT
- goto setPinEightToIn ;SET_PIN_EIGHT_TO_IN equ d'138' ; set digital pin 8 to INPUT
- goto setPinNineToIn ;SET_PIN_NINE_TO_IN equ d'139' ; set digital pin 9 to INPUT
- goto setPinTenToIn ;SET_PIN_TEN_TO_IN equ d'140' ; set digital pin 10 to INPUT
- goto setPinElevenToIn ;SET_PIN_ELEVEN_TO_IN equ d'141' ; set digital pin 11 to INPUT
- goto setPinTwelveToIn ;SET_PIN_TWELVE_TO_IN equ d'142' ; set digital pin 12 to INPUT
- goto setPinThirteenToIn ;SET_PIN_THIRTEEN_TO_IN equ d'143' ; set digital pin 13 to INPUT
-; 144-149 UNUSED
- return ; 144
- return ; 145
- return ; 146
- return ; 147
- return ; 148
- return ; 149
- goto disableDigitalInputs ;DISABLE_DIGITAL_INPUTS equ d'150' ; disable reporting of digital inputs
- goto enableDigitalInputs ;ENABLE_DIGITAL_INPUTS equ d'151' ; enable reporting of digital inputs
-; 152-159 UNUSED
- return ; 152
- return ; 153
- return ; 154
- return ; 155
- return ; 156
- return ; 157
- return ; 158
- return ; 159
- goto setZeroAnalogIns ;ZERO_ANALOG_INS equ d'160' ; disable reporting on all analog ins
- goto setOneAnalogIn ;ONE_ANALOG_IN equ d'161' ; enable reporting for 1 analog in (0)
- goto setTwoAnalogIns ;TWO_ANALOG_INS equ d'162' ; enable reporting for 2 analog ins (0,1)
- goto setThreeAnalogIns ;THREE_ANALOG_INS equ d'163' ; enable reporting for 3 analog ins (0-2)
- goto setFourAnalogIns ;FOUR_ANALOG_INS equ d'164' ; enable reporting for 4 analog ins (0-3)
- goto setFiveAnalogIns ;FIVE_ANALOG_INS equ d'165' ; enable reporting for 5 analog ins (0-4)
- goto setSixAnalogIns ;SIX_ANALOG_INS equ d'166' ; enable reporting for 6 analog ins (0-5)
-; 167-199 UNUSED
- return ; 167
- return ; 168
- return ; 169
- return ; 170
- return ; 171
- return ; 172
- return ; 173
- return ; 174
- return ; 175
- return ; 176
- return ; 177
- return ; 178
- return ; 179
- return ; 180
- return ; 181
- return ; 182
- return ; 183
- return ; 184
- return ; 185
- return ; 186
- return ; 187
- return ; 188
- return ; 189
- return ; 190
- return ; 191
- return ; 192
- return ; 193
- return ; 194
- return ; 195
- return ; 196
- return ; 197
- return ; 198
- return ; 199
- goto setPinZeroToOut ;SET_PIN_ZERO_TO_OUT equ d'200' ; set digital pin 0 to OUTPUT
- goto setPinOneToOut ;SET_PIN_ONE_TO_OUT equ d'201' ; set digital pin 1 to OUTPUT
- goto setPinTwoToOut ;SET_PIN_TWO_TO_OUT equ d'202' ; set digital pin 2 to OUTPUT
- goto setPinThreeToOut ;SET_PIN_THREE_TO_OUT equ d'203' ; set digital pin 3 to OUTPUT
- goto setPinFourToOut ;SET_PIN_FOUR_TO_OUT equ d'204' ; set digital pin 4 to OUTPUT
- goto setPinFiveToOut ;SET_PIN_FIVE_TO_OUT equ d'205' ; set digital pin 5 to OUTPUT
- goto setPinSixToOut ;SET_PIN_SIX_TO_OUT equ d'206' ; set digital pin 6 to OUTPUT
- goto setPinSevenToOut ;SET_PIN_SEVEN_TO_OUT equ d'207' ; set digital pin 7 to OUTPUT
- goto setPinEightToOut ;SET_PIN_EIGHT_TO_OUT equ d'208' ; set digital pin 8 to OUTPUT
- goto setPinNineToOut ;SET_PIN_NINE_TO_OUT equ d'209' ; set digital pin 9 to OUTPUT
- goto setPinTenToOut ;SET_PIN_TEN_TO_OUT equ d'210' ; set digital pin 10 to OUTPUT
- goto setPinElevenToOut ;SET_PIN_ELEVEN_TO_OUT equ d'211' ; set digital pin 11 to OUTPUT
- goto setPinTwelveToOut ;SET_PIN_TWELVE_TO_OUT equ d'212' ; set digital pin 12 to OUTPUT
- goto setPinThirteenToOut ;SET_PIN_THIRTEEN_TO_OUT equ d'213' ; set digital pin 13 to OUTPUT
-; 214-228 UNUSED
- return ; 214
- return ; 215
- return ; 216
- return ; 217
- return ; 218
- return ; 219
- return ; 220
- return ; 221
- return ; 222
- return ; 223
- return ; 224
- return ; 225
- return ; 226
- return ; 227
- return ; 228
- goto setOutputToDigitalPins ;OUTPUT_TO_DIGITAL_PINS equ d'229' ; next two bytes set digital output data
-; 230-239 UNUSED
- return; 230
- return; 231
- return; 232
- return; 233
- return; 234
- return; 235
- return; 236
- return; 237
- return; 238
- return; 239
- goto reportVersion ;REPORT_VERSION equ d'240' ; return the firmware version
-; 240-249 UNUSED
- return ; 241
- return ; 242
- return ; 243
- return ; 244
- return ; 245
- return ; 246
- return ; 247
- return ; 248
- return ; 249
- goto disablePwm ;DISABLE_PWM equ d'250' ; next byte sets pin # to disable
- goto enablePwm ;ENABLE_PWM equ d'251' ; next two bytes set pin # and duty cycle
- goto disableSoftPwm ;DISABLE_SOFTWARE_PWM equ d'252' ; next byte sets pin # to disable
- goto enableSoftPwm ;ENABLE_SOFTWARE_PWM equ d'253' ; next two bytes set pin # and duty cycle
- goto setSoftPwmFreq ;SET_SOFTWARE_PWM_FREQ equ d'254' ; set master frequency for software PWMs
-; 255 UNUSED
- return ; 255
-; -------------------------------------------------------------------------
-digitalRead ; on entry digitalPin is the pin to read, returns value in carry
- movlw HIGH digRdTab
- movwf PCLATH
- movf digitalPin,w
- bcf STATUS,C
- addwf PCL,f
-digRdTab
- goto digitalRead0
- goto digitalRead1
- goto digitalRead2
- goto digitalRead3
- goto digitalRead4
- goto digitalRead5
- goto digitalRead6
- goto digitalRead7
- goto digitalRead8
- goto digitalRead9
- goto digitalRead10
- goto digitalRead11
- goto digitalRead12
- goto digitalRead13
-; -------------------------------------------------------------------------
-setPinToIn
-; digitalPinStatus = digitalPinStatus &~ (1 << pin);
-; pwmStatus = pwmStatus &~ (1 << pin);
-; pinMode(pin,INPUT);
- movlw HIGH pinintab
- movwf PCLATH
- movf pin,w
- addwf PCL,f
-pinintab
- goto setPinZeroToIn
- goto setPinOneToIn
- goto setPinTwoToIn
- goto setPinThreeToIn
- goto setPinFourToIn
- goto setPinFiveToIn
- goto setPinSixToIn
- goto setPinSevenToIn
- goto setPinEightToIn
- goto setPinNineToIn
- goto setPinTenToIn
- goto setPinElevenToIn
- goto setPinTwelveToIn
- goto setPinThirteenToIn
-; -------------------------------------------------------------------------
-setPinToOut
- movlw HIGH pinoutTab
- movwf PCLATH
- movf pin,w
- addwf PCL,f
-pinoutTab
- goto setPinZeroToOut
- goto setPinOneToOut
- goto setPinTwoToOut
- goto setPinThreeToOut
- goto setPinFourToOut
- goto setPinFiveToOut
- goto setPinSixToOut
- goto setPinSevenToOut
- goto setPinEightToOut
- goto setPinNineToOut
- goto setPinTenToOut
- goto setPinElevenToOut
- goto setPinTwelveToOut
- goto setPinThirteenToOut
-; -------------------------------------------------------------------------
-setPinToPwm
- movlw HIGH pinpwmTab
- movwf PCLATH
- movf pin,w
- addwf PCL,f
-pinpwmTab
- goto setPinZeroToPWM
- goto setPinOneToPWM
- goto setPinTwoToPWM
- goto setPinThreeToPWM
- goto setPinFourToPWM
- goto setPinFiveToPWM
- goto setPinSixToPWM
- goto setPinSevenToPWM
- goto setPinEightToPWM
- goto setPinNineToPWM
- goto setPinTenToPWM
- goto setPinElevenToPWM
- goto setPinTwelveToPWM
- goto setPinThirteenToPWM
-; -------------------------------------------------------------------------
-analogRead ; analogRead sets analogDataHi and analogDataLo according to analogPin
- movlw HIGH analogRdTab
- movwf PCLATH
- movf analogPin,w
- addwf PCL,f
-analogRdTab
- goto analogRead0
- goto analogRead1
- goto analogRead2
- goto analogRead3
- goto analogRead4
- goto analogRead5
-; -------------------------------------------------------------------------
-doMultiByteCommand
-; switch(executeMultiByteCommand)
-; {
- movlw HIGH mbctab
- movwf PCLATH
- movlw DISABLE_PWM ; 250
- subwf executeMultiByteCommand,w ; remove offset of 250
- addwf PCL,f
-mbctab
- goto mb_disablePwm ; 250
- goto mb_enablePwm ; 251
- goto mb_disableSoftPwm ; 252
- goto mb_enableSoftPwm ; 253
- goto mb_setSoftPwmFreq ; 254
-; -------------------------------------------------------------------------
-;
- END ; directive 'end of program'
-
diff --git a/PICduino/f767duino.mcp b/PICduino/f767duino.mcp
deleted file mode 100755
index 597b565..0000000
--- a/PICduino/f767duino.mcp
+++ /dev/null
@@ -1,30 +0,0 @@
-[HEADER]
-magic_cookie={66E99B07-E706-4689-9E80-9B2582898A13}
-file_version=1.0
-[PATH_INFO]
-dir_src=
-dir_bin=
-dir_tmp=
-dir_sin=
-dir_inc=
-dir_lib=
-dir_lkr=
-[CAT_FILTERS]
-filter_src=*.asm
-filter_inc=*.h;*.inc
-filter_obj=*.o
-filter_lib=*.lib
-filter_lkr=*.lkr
-[OTHER_FILES]
-file_000=no
-file_001=no
-[FILE_INFO]
-file_000=f767duino.asm
-file_001=P16F767.INC
-[SUITE_INFO]
-suite_guid={6B3DAA78-59C1-46DD-B6AA-DBDAE4E06484}
-suite_state=
-[TOOL_SETTINGS]
-TS{DD2213A8-6310-47B1-8376-9430CDFC013F}=
-TS{BFD27FBA-4A02-4C0E-A5E5-B812F3E7707C}=/o"$(TARGETBASE).cof" /M"$(BINDIR_)$(TARGETBASE).map"
-TS{ADE93A55-C7C7-4D4D-A4BA-59305F7D0391}=
diff --git a/PICduino/f767duino.mcw b/PICduino/f767duino.mcw
deleted file mode 100755
index 12e9215..0000000
--- a/PICduino/f767duino.mcw
+++ /dev/null
Binary files differ
diff --git a/PICduino/picduino.png b/PICduino/picduino.png
deleted file mode 100755
index c534c4e..0000000
--- a/PICduino/picduino.png
+++ /dev/null
Binary files differ
diff --git a/arduino-meta.pd b/pduino-meta.pd
index ee36888..1d22a1d 100644
--- a/arduino-meta.pd
+++ b/pduino-meta.pd
@@ -1,6 +1,6 @@
#N canvas 15 49 200 200 10;
#N canvas 25 49 420 300 META 1;
-#X text 13 41 NAME arduino;
+#X text 13 41 NAME pduino;
#X text 10 25 AUTHOR Hans-Chrsitoph Steiner \, Gerda Strobl \, Georg Holzmann;
#X text 10 10 VERSION 0.5.1;
#X restore 10 10 pd META;