Author: sebastien.lelong
Date: Sat Jun 6 06:41:29 2009
New Revision: 1031
Modified:
trunk/include/peripheral/adc/adc.jal
trunk/include/peripheral/adc/adc_pindef.jal
trunk/tools/adc/adc_an_grp.py
trunk/tools/adc/adc_pins.py
trunk/tools/pinmap.py
Log:
implement left/right justify, fix 5 missing PICs: 16F677, 16F685, 16F687,
16F689 and 16F690
Modified: trunk/include/peripheral/adc/adc.jal
==============================================================================
--- trunk/include/peripheral/adc/adc.jal (original)
+++ trunk/include/peripheral/adc/adc.jal Sat Jun 6 06:41:29 2009
@@ -54,7 +54,7 @@
-- sanity check
if ADC_HIGH_RESOLUTION & ! defined(ADRESH) then
- _warn "This pic does not seem to handle 10-bits ADC"
+ _warn "This PIC does not seem to handle 10-bits ADC"
end if
-- local variables
@@ -159,18 +159,34 @@
procedure _adc_init_justify() is
- -- TODO: jallibize this !
+ -- Seb: justification is done through ADFM bits
+ -- They can be found in:
+ -- - ADCON0_ADFM
+ -- - ADCON1_ADFM
+ -- - ADCON2_ADFM
+ --
+ -- When true (1), it's right justified: the 6 MSb of ADRESH are read
as '0'
+ -- When false (0), it's left justified: the 6 LSb of ADRESL are read
as '0'
+ --
+ -- The choice here is kept from Stef's logic:
+ -- - if high resolution, right justified, read H + L
+ -- - if low resolution, left justified, only read H
+
+ -- first normalize ADFM bit
+ if defined(ADCON0_ADFM) == true then
+ var volatile bit JALLIB_ADFM is ADCON0_ADFM
+ elsif defined(ADCON1_ADFM) == true then
+ var volatile bit JALLIB_ADFM is ADCON1_ADFM
+ elsif defined(ADCON2_ADFM) == true then
+ var volatile bit JALLIB_ADFM is ADCON2_ADFM
+ else
+ _err "Couldn't found ADFM bits, report this error !"
+ end if
- -- if high resolution, right justified, read H + L
- -- if low resolution, left justified, only read H
- if target_chip == PIC_12F675 then
- if ADC_HIGH_RESOLUTION then
- _adcon0_shadow = _adcon0_shadow | 0x80
- end if
+ if ADC_HIGH_RESOLUTION == true then
+ JALLIB_ADFM = 1
else
- if ADC_HIGH_RESOLUTION then
- ADCON1 = ADCON1 | 0x80
- end if
+ JALLIB_ADFM = 0
end if
end procedure
Modified: trunk/include/peripheral/adc/adc_pindef.jal
==============================================================================
--- trunk/include/peripheral/adc/adc_pindef.jal (original)
+++ trunk/include/peripheral/adc/adc_pindef.jal Sat Jun 6 06:41:29 2009
@@ -1168,7 +1168,7 @@
-- RC6 <-> AN8
-- RC7 <-> AN9
--
-if target_chip == PIC_18LF13K22 | target_chip == PIC_16HV785 | target_chip
== PIC_18F13K22 | target_chip == PIC_18LF14K22 | target_chip ==
PIC_18F14K22 | target_chip == PIC_16F785 then
+if target_chip == PIC_18LF13K22 | target_chip == PIC_16HV785 | target_chip
== PIC_18F13K22 | target_chip == PIC_18LF14K22 | target_chip ==
PIC_18F14K22 | target_chip == PIC_16F785 | target_chip == PIC_16F690 |
target_chip == PIC_16F687 | target_chip == PIC_16F689 | target_chip ==
PIC_16F685 | target_chip == PIC_16F677 then
const byte ADC_NTOTAL_CHANNEL = 12
const byte JALLIB_ADC_GRP = 28
Modified: trunk/tools/adc/adc_an_grp.py
==============================================================================
--- trunk/tools/adc/adc_an_grp.py (original)
+++ trunk/tools/adc/adc_an_grp.py Sat Jun 6 06:41:29 2009
@@ -242,7 +242,12 @@
'18F13K22',
'18LF14K22',
'18F14K22',
-
'16F785'],
+
'16F785',
+
'16F690',
+
'16F687',
+
'16F689',
+
'16F685',
+
'16F677'],
(('RA0', 'AN0'), ('RA1', 'AN1'), ('RA2', 'AN2'), ('RA4', 'AN3'),
('RC0', 'AN4'), ('RC1', 'AN5'), ('RC2', 'AN6'), ('RC3', 'AN7')): ['16F688',
'16F684'],
(('RA0', 'AN0'), ('RA1', 'AN1'), ('RA4', 'AN2')): ['18F1230', '18F1330'],
Modified: trunk/tools/adc/adc_pins.py
==============================================================================
--- trunk/tools/adc/adc_pins.py (original)
+++ trunk/tools/adc/adc_pins.py Sat Jun 6 06:41:29 2009
@@ -10,6 +10,18 @@
'16F628': {'RA0': 'AN0', 'RA1': 'AN1', 'RA2': 'AN2', 'RA3': 'AN3'},
'16F628A': {'RA0': 'AN0', 'RA1': 'AN1', 'RA2': 'AN2', 'RA3': 'AN3'},
'16F648A': {'RA0': 'AN0', 'RA1': 'AN1', 'RA2': 'AN2', 'RA3': 'AN3'},
+ '16F677': {'RA0': 'AN0',
+ 'RA1': 'AN1',
+ 'RA2': 'AN2',
+ 'RA4': 'AN3',
+ 'RC0': 'AN4',
+ 'RC1': 'AN5',
+ 'RC2': 'AN6',
+ 'RC3': 'AN7',
+ 'RC6': 'AN8',
+ 'RC7': 'AN9',
+ 'RB4': 'AN10',
+ 'RB5': 'AN11'},
'16F684': {'RA0': 'AN0',
'RA1': 'AN1',
'RA2': 'AN2',
@@ -18,6 +30,30 @@
'RC1': 'AN5',
'RC2': 'AN6',
'RC3': 'AN7'},
+ '16F685': {'RA0': 'AN0',
+ 'RA1': 'AN1',
+ 'RA2': 'AN2',
+ 'RA4': 'AN3',
+ 'RC0': 'AN4',
+ 'RC1': 'AN5',
+ 'RC2': 'AN6',
+ 'RC3': 'AN7',
+ 'RC6': 'AN8',
+ 'RC7': 'AN9',
+ 'RB4': 'AN10',
+ 'RB5': 'AN11'},
+ '16F687': {'RA0': 'AN0',
+ 'RA1': 'AN1',
+ 'RA2': 'AN2',
+ 'RA4': 'AN3',
+ 'RC0': 'AN4',
+ 'RC1': 'AN5',
+ 'RC2': 'AN6',
+ 'RC3': 'AN7',
+ 'RC6': 'AN8',
+ 'RC7': 'AN9',
+ 'RB4': 'AN10',
+ 'RB5': 'AN11'},
'16F688': {'RA0': 'AN0',
'RA1': 'AN1',
'RA2': 'AN2',
@@ -26,6 +62,30 @@
'RC1': 'AN5',
'RC2': 'AN6',
'RC3': 'AN7'},
+ '16F689': {'RA0': 'AN0',
+ 'RA1': 'AN1',
+ 'RA2': 'AN2',
+ 'RA4': 'AN3',
+ 'RC0': 'AN4',
+ 'RC1': 'AN5',
+ 'RC2': 'AN6',
+ 'RC3': 'AN7',
+ 'RC6': 'AN8',
+ 'RC7': 'AN9',
+ 'RB4': 'AN10',
+ 'RB5': 'AN11'},
+ '16F690': {'RA0': 'AN0',
+ 'RA1': 'AN1',
+ 'RA2': 'AN2',
+ 'RA4': 'AN3',
+ 'RC0': 'AN4',
+ 'RC1': 'AN5',
+ 'RC2': 'AN6',
+ 'RC3': 'AN7',
+ 'RC6': 'AN8',
+ 'RC7': 'AN9',
+ 'RB4': 'AN10',
+ 'RB5': 'AN11'},
'16F716': {'RA0': 'AN0', 'RA1': 'AN1', 'RA2': 'AN2', 'RA3': 'AN3'},
'16F72': {'RA0': 'AN0',
'RA1': 'AN1',
Modified: trunk/tools/pinmap.py
==============================================================================
--- trunk/tools/pinmap.py (original)
+++ trunk/tools/pinmap.py Sat Jun 6 06:41:29 2009
@@ -306,9 +306,9 @@
'RB6': ['RB6'],
'RB7': ['RB7'],
'RC0': ['RC0', 'C2IN+'],
- 'RC1': ['RC1', 'C12IN1'],
- 'RC2': ['RC2', 'C12IN2RB4'],
- 'RC3': ['RC3', 'C12IN3'],
+ 'RC1': ['RC1', 'C12IN1-'],
+ 'RC2': ['RC2', 'C12IN2-'],
+ 'RC3': ['RC3', 'C12IN3-'],
'RC4': ['RC4', 'C2OUT'],
'RC5': ['RC5'],
'RC6': ['RC6'],
@@ -365,24 +365,24 @@
'RC3': ['RC3'],
'RC4': ['RC4'],
'RC5': ['RC5']},
- '16F677': {'RA0': ['RA0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
- 'RA1': ['RA1', 'C12IN0-', 'ICSPCLK'],
- 'RA2': ['RA2', 'T0CKI', 'INT', 'C1OUT'],
- 'RA3': ['RA3', 'MCLR', 'VPP'],
- 'RA4': ['RA4', 'T1G', 'OSC2', 'CLKOUT'],
- 'RA5': ['RA5', 'T1CKI', 'OSC1', 'CLKIN'],
- 'RB4': ['RB4'],
- 'RB5': ['RB5'],
- 'RB6': ['RB6'],
+ '16F677': {'RA0': ['RA0', 'AN0','C1IN+', 'ICSPDAT', 'ULPWU'],
+ 'RA1': ['RA1', 'AN1','C12IN0-', 'VREF','ICSPCLK'],
+ 'RA2': ['RA2', 'AN2','T0CKI', 'INT', 'C1OUT'],
+ 'RA3': ['RA3', 'MCLR', 'VPP'],
+ 'RA4': ['RA4', 'AN3','T1G', 'OSC2', 'CLKOUT'],
+ 'RA5': ['RA5', 'T1CKI', 'OSC1', 'CLKIN'],
+ 'RB4': ['RB4','AN10','SDI','SDA'],
+ 'RB5': ['RB5','AN11'],
+ 'RB6': ['RB6','SCK','SCL'],
'RB7': ['RB7'],
- 'RC0': ['RC0', 'C2IN+'],
- 'RC1': ['RC1', 'C12IN1'],
- 'RC2': ['RC2', 'C12IN2RB4'],
- 'RC3': ['RC3', 'C12IN3'],
+ 'RC0': ['RC0','AN4', 'C2IN+'],
+ 'RC1': ['RC1','AN5','C12IN1-'],
+ 'RC2': ['RC2','AN6', 'C12IN2-'],
+ 'RC3': ['RC3','AN7', 'C12IN3-'],
'RC4': ['RC4', 'C2OUT'],
'RC5': ['RC5'],
- 'RC6': ['RC6'],
- 'RC7': ['RC7']},
+ 'RC6': ['RC6','AN8','SS'],
+ 'RC7': ['RC7','AN9','SDO']},
'16F684': {'RA0': ['RA0', 'AN0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
'RA1': ['RA1', 'AN1', 'C1IN-', 'VREF', 'ICSPCLK'],
'RA2': ['RA2', 'AN2', 'T0CKI', 'INT', 'C1OUT'],
@@ -395,42 +395,42 @@
'RC3': ['RC3', 'AN7', 'P1C'],
'RC4': ['RC4', 'C2OUT', 'P1B'],
'RC5': ['RC5', 'CCP1', 'P1A']},
- '16F685': {'RA0': ['RA0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
- 'RA1': ['RA1', 'C12IN0-', 'ICSPCLK'],
- 'RA2': ['RA2', 'T0CKI', 'INT', 'C1OUT'],
- 'RA3': ['RA3', 'MCLR', 'VPP'],
- 'RA4': ['RA4', 'T1G', 'OSC2', 'CLKOUT'],
- 'RA5': ['RA5', 'T1CKI', 'OSC1', 'CLKIN'],
- 'RB4': ['RB4'],
- 'RB5': ['RB5'],
- 'RB6': ['RB6'],
- 'RB7': ['RB7'],
- 'RC0': ['RC0', 'C2IN+'],
- 'RC1': ['RC1', 'C12IN1'],
- 'RC2': ['RC2', 'C12IN2RB4'],
- 'RC3': ['RC3', 'C12IN3'],
- 'RC4': ['RC4', 'C2OUT'],
- 'RC5': ['RC5'],
- 'RC6': ['RC6'],
- 'RC7': ['RC7']},
- '16F687': {'RA0': ['RA0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
- 'RA1': ['RA1', 'C12IN0-', 'ICSPCLK'],
- 'RA2': ['RA2', 'T0CKI', 'INT', 'C1OUT'],
+ '16F685': {'RA0': ['RA0','AN0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
+ 'RA1': ['RA1','AN1', 'C12IN0-', 'VREF','ICSPCLK'],
+ 'RA2': ['RA2','AN2', 'T0CKI', 'INT', 'C1OUT'],
'RA3': ['RA3', 'MCLR', 'VPP'],
- 'RA4': ['RA4', 'T1G', 'OSC2', 'CLKOUT'],
+ 'RA4': ['RA4', 'AN3','T1G', 'OSC2', 'CLKOUT'],
'RA5': ['RA5', 'T1CKI', 'OSC1', 'CLKIN'],
- 'RB4': ['RB4'],
- 'RB5': ['RB5'],
+ 'RB4': ['RB4','AN10'],
+ 'RB5': ['RB5','AN11'],
'RB6': ['RB6'],
'RB7': ['RB7'],
- 'RC0': ['RC0', 'C2IN+'],
- 'RC1': ['RC1', 'C12IN1'],
- 'RC2': ['RC2', 'C12IN2RB4'],
- 'RC3': ['RC3', 'C12IN3'],
- 'RC4': ['RC4', 'C2OUT'],
+ 'RC0': ['RC0','AN4', 'C2IN+'],
+ 'RC1': ['RC1','AN5', 'C12IN1-'],
+ 'RC2': ['RC2','AN6', 'C12IN2-'],
+ 'RC3': ['RC3','AN7', 'C12IN3-'],
+ 'RC4': ['RC4', 'C2OUT','P1B'],
+ 'RC5': ['RC5','CCP1','P1A'],
+ 'RC6': ['RC6','AN8'],
+ 'RC7': ['RC7','AN9']},
+ '16F687': {'RA0': ['RA0','AN0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
+ 'RA1': ['RA1','AN1', 'C12IN0-', 'VREF','ICSPCLK'],
+ 'RA2': ['RA2','AN2', 'T0CKI', 'INT', 'C1OUT'],
+ 'RA3': ['RA3', 'MCLR', 'VPP'],
+ 'RA4': ['RA4', 'AN3','T1G', 'OSC2', 'CLKOUT'],
+ 'RA5': ['RA5', 'T1CKI', 'OSC1', 'CLKIN'],
+ 'RB4': ['RB4','AN10','SDI','SDA'],
+ 'RB5': ['RB5','AN11','RX','DT'],
+ 'RB6': ['RB6','SCK','SCL'],
+ 'RB7': ['RB7','TX','CK'],
+ 'RC0': ['RC0','AN4', 'C2IN+'],
+ 'RC1': ['RC1','AN5', 'C12IN1-'],
+ 'RC2': ['RC2','AN6', 'C12IN2-'],
+ 'RC3': ['RC3','AN7', 'C12IN3-'],
+ 'RC4': ['RC4', 'C2OUT',],
'RC5': ['RC5'],
- 'RC6': ['RC6'],
- 'RC7': ['RC7']},
+ 'RC6': ['RC6','AN8','SS'],
+ 'RC7': ['RC7','AN9','SDO']},
'16F688': {'RA0': ['RA0', 'AN0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
'RA1': ['RA1', 'AN1', 'C1IN-', 'VREF', 'ICSPCLK'],
'RA2': ['RA2', 'AN2', 'T0CKI', 'INT', 'C1OUT'],
@@ -443,42 +443,42 @@
'RC3': ['RC3', 'AN7'],
'RC4': ['RC4', 'C2OUT', 'TX', 'CK'],
'RC5': ['RC5', 'RX', 'DT']},
- '16F689': {'RA0': ['RA0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
- 'RA1': ['RA1', 'C12IN0-', 'ICSPCLK'],
- 'RA2': ['RA2', 'T0CKI', 'INT', 'C1OUT'],
- 'RA3': ['RA3', 'MCLR', 'VPP'],
- 'RA4': ['RA4', 'T1G', 'OSC2', 'CLKOUT'],
- 'RA5': ['RA5', 'T1CKI', 'OSC1', 'CLKIN'],
- 'RB4': ['RB4'],
- 'RB5': ['RB5'],
- 'RB6': ['RB6'],
- 'RB7': ['RB7'],
- 'RC0': ['RC0', 'C2IN+'],
- 'RC1': ['RC1', 'C12IN1'],
- 'RC2': ['RC2', 'C12IN2RB4'],
- 'RC3': ['RC3', 'C12IN3'],
- 'RC4': ['RC4', 'C2OUT'],
- 'RC5': ['RC5'],
- 'RC6': ['RC6'],
- 'RC7': ['RC7']},
- '16F690': {'RA0': ['RA0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
- 'RA1': ['RA1', 'C12IN0-', 'ICSPCLK'],
- 'RA2': ['RA2', 'T0CKI', 'INT', 'C1OUT'],
+ '16F689': {'RA0': ['RA0','AN0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
+ 'RA1': ['RA1','AN1', 'C12IN0-', 'VREF','ICSPCLK'],
+ 'RA2': ['RA2','AN2', 'T0CKI', 'INT', 'C1OUT'],
+ 'RA3': ['RA3', 'MCLR', 'VPP'],
+ 'RA4': ['RA4', 'AN3','T1G', 'OSC2', 'CLKOUT'],
+ 'RA5': ['RA5', 'T1CKI', 'OSC1', 'CLKIN'],
+ 'RB4': ['RB4','AN10','SDI','SDA'],
+ 'RB5': ['RB5','AN11','RX','DT'],
+ 'RB6': ['RB6','SCK','SCL'],
+ 'RB7': ['RB7','TX','CK'],
+ 'RC0': ['RC0','AN4', 'C2IN+'],
+ 'RC1': ['RC1','AN5', 'C12IN1-'],
+ 'RC2': ['RC2','AN6', 'C12IN2-'],
+ 'RC3': ['RC3','AN7', 'C12IN3-'],
+ 'RC4': ['RC4', 'C2OUT',],
+ 'RC5': ['RC5'],
+ 'RC6': ['RC6','AN8','SS'],
+ 'RC7': ['RC7','AN9','SDO']},
+ '16F690': {'RA0': ['RA0', 'AN0', 'C1IN+', 'ICSPDAT', 'ULPWU'],
+ 'RA1': ['RA1', 'AN1', 'C12IN0-', 'ICSPCLK'],
+ 'RA2': ['RA2', 'AN2', 'T0CKI', 'INT', 'C1OUT'],
'RA3': ['RA3', 'MCLR', 'VPP'],
- 'RA4': ['RA4', 'T1G', 'OSC2', 'CLKOUT'],
+ 'RA4': ['RA4', 'AN3', 'T1G', 'OSC2', 'CLKOUT'],
'RA5': ['RA5', 'T1CKI', 'OSC1', 'CLKIN'],
- 'RB4': ['RB4'],
- 'RB5': ['RB5'],
- 'RB6': ['RB6'],
- 'RB7': ['RB7'],
- 'RC0': ['RC0', 'C2IN+'],
- 'RC1': ['RC1', 'C12IN1'],
- 'RC2': ['RC2', 'C12IN2RB4'],
- 'RC3': ['RC3', 'C12IN3'],
- 'RC4': ['RC4', 'C2OUT'],
- 'RC5': ['RC5'],
- 'RC6': ['RC6'],
- 'RC7': ['RC7']},
+ 'RB4': ['RB4', 'AN10','SDI','SDA'],
+ 'RB5': ['RB5', 'AN11','RX','DT'],
+ 'RB6': ['RB6', 'SCK','SCL'],
+ 'RB7': ['RB7','TX','CK'],
+ 'RC0': ['RC0','AN4', 'C2IN+'],
+ 'RC1': ['RC1','AN5', 'C12IN1-'],
+ 'RC2': ['RC2','AN6', 'C12IN2-','P1D'],
+ 'RC3': ['RC3','AN7', 'C12IN3-','P1C'],
+ 'RC4': ['RC4', 'C2OUT','P1B'],
+ 'RC5': ['RC5','CCP1','P1A'],
+ 'RC6': ['RC6','AN8','SS'],
+ 'RC7': ['RC7','AN9','SDO']},
'16F716': {'RA0': ['RA0', 'AN0'],
'RA1': ['RA1', 'AN1'],
'RA2': ['RA2', 'AN2'],
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jallib" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/jallib?hl=en
-~----------~----~----~----~------~----~------~--~---