Index: funcmap/attiny24.funcmap =================================================================== --- funcmap/attiny24.funcmap (revision 9191) +++ funcmap/attiny24.funcmap (revision 9192) @@ -1,88 +1,71 @@ ha:funcmap.v1 { - ha:port_attribs { - ha:PB0 { - ha:PCINT8 { sigtype=digital; dir=input; } - ha:XTAL1 { sigtype=analog; } - } - ha:PB1 { - ha:PCINT9 { sigtype=digital; dir=input; } - ha:XTAL2 { sigtype=analog; } - } - ha:PB3 { - ha:PCINT11 { sigtype=digital; dir=input; } - ha:RESET { sigtype=digital; dir=input; } - } - ha:PB2 { - ha:PCINT10 { sigtype=digital; dir=input; } - ha:OC0A { sigtype=digital; dir=output; } - ha:INT0 { sigtype=digital; dir=input; } - } - ha:PB7 { - ha:PCINT7 { sigtype=digital; dir=input; } - ha:OC0B { sigtype=digital; dir=output; } - ha:ADC7 { sigtype=digital; dir=input; } - } - ha:PB6 { - ha:PCINT6 { sigtype=digital; dir=input; } - ha:MOSI { sigtype=digital; } - ha:DI { sigtype=digital; dir=input; } - ha:SDA { sigtype=digital; } - ha:OC1A { sigtype=digital; dir=output; } - ha:ADC6 { sigtype=analog; dir=input; } - } + ha:comp_attribs { + li:funcmap/ports { + { PB0/PCINT8 -> sigtype=digital; dir=input } + { PB0/XTAL1 -> sigtype=analog; } - ha:PA0 { - ha:PCINT0 { sigtype=digital; dir=input; } - ha:AREF { sigtype=analog; dir=input; } - ha:ADC0 { sigtype=analog; dir=input; } - } + { PB1/PCINT9 -> sigtype=digital; dir=input } + { PB1/XTAL2 -> sigtype=analog; } - ha:PA1 { - ha:PCINT1 { sigtype=digital; dir=input; } - ha:AIN0 { sigtype=analog; dir=input; } - ha:ADC1 { sigtype=analog; dir=input; } - } + { PB3/PCINT11 -> sigtype=digital; dir=input } + { PB3/RESET -> sigtype=digital; dir=input } - ha:PA2 { - ha:PCINT2 { sigtype=digital; dir=input; } - ha:AIN1 { sigtype=analog; dir=input; } - ha:ADC2 { sigtype=analog; dir=input; } - } + { PB2/PCINT10 -> sigtype=digital; dir=input } + { PB2/OC0A -> sigtype=digital; dir=output } + { PB2/INT0 -> sigtype=digital; dir=input } - ha:PA3 { - ha:PCINT3 { sigtype=digital; dir=input; } - ha:ADC3 { sigtype=analog; dir=input; } + { PB7/PCINT7 -> sigtype=digital; dir=input } + { PB7/OC0B -> sigtype=digital; dir=output } + { PB7/ADC7 -> sigtype=digital; dir=input } + + { PB6/PCINT6 -> sigtype=digital; dir=input } + { PB6/MOSI -> sigtype=digital; } + { PB6/DI -> sigtype=digital; dir=input } + { PB6/SDA -> sigtype=digital; } + { PB6/OC1A -> sigtype=digital; dir=output } + { PB6/ADC6 -> sigtype=analog; dir=input } + + { PA0/PCINT0 -> sigtype=digital; dir=input } + { PA0/AREF -> sigtype=analog; dir=input } + { PA0/ADC0 -> sigtype=analog; dir=input } + + { PA0/PCINT1 -> sigtype=digital; dir=input } + { PA0/AIN0 -> sigtype=analog; dir=input } + { PA0/ADC1 -> sigtype=analog; dir=input } + + { PA2/PCINT2 -> sigtype=digital; dir=input } + { PA2/AIN1 -> sigtype=analog; dir=input } + { PA2/ADC2 -> sigtype=analog; dir=input } + + { PA3/PCINT3 -> sigtype=digital; dir=input } + { PA3/ADC3 -> sigtype=analog; dir=input } + + { PA4/PCINT4 -> sigtype=digital; dir=input } + { PA4/SCK -> sigtype=digital; } + { PA4/SCL -> sigtype=digital; } + { PA4/ADC4 -> sigtype=analog; dir=input } + + { PA5/PCINT5 -> sigtype=digital; dir=input } + { PA5/MISO -> sigtype=digital; } + { PA5/DO -> sigtype=digital; dir=output } + { PA5/OC1B -> sigtype=digital; dir=output } + { PA5/ADC5 -> sigtype=analog; dir=input } } - ha:PA4 { - ha:PCINT4 { sigtype=digital; dir=input; } - ha:SCK { sigtype=digital; } - ha:SCL { sigtype=digital; } - ha:ADC4 { sigtype=analog; dir=input; } + # coloring + li:funcmap/weak_groups { + { pcint -> PCINT8, PCINT9, PCINT11, PCINT10, PCINT7, PCINT6, PCINT0, PCINT1, PCINT2, PCINT3, PCINT4, PCINT5 } + { xtal -> XTAL1, XTAL2 } + { PWM -> OC0A, OC0B, OC1A, OC1B } + { adc -> AREF, ADC0, ADC1, ADC2, ADC3, ADC4, ADC5, ADC6, ADC7 } + { comparator -> AIN0, AIN1 } } - ha:PA5 { - ha:PCINT5 { sigtype=digital; dir=input; } - ha:MISO { sigtype=digital; } - ha:DO { sigtype=digital; dir=output; } - ha:OC1B { sigtype=digital; dir=output; } - ha:ADC5 { sigtype=analog; dir=input; } + # have to be selected all at once + li:funcmap/strong_groups { + { SPI -> SCK, MISO, MOSI } + { I2C -> SDA, SCL } + { USI -> SCK, DI, DO } } } - -# coloring - ha:weak_groups { - li:pcint { PCINT8, PCINT9, PCINT11, PCINT10, PCINT7, PCINT6, PCINT0, PCINT1, PCINT2, PCINT3, PCINT4, PCINT5 } - li:xtal { XTAL1, XTAL2 } - li:PWM { OC0A, OC0B, OC1A, OC1B } - li:adc { AREF, ADC0, ADC1, ADC2, ADC3, ADC4, ADC5, ADC6, ADC7 } - li:comparator { AIN0, AIN1 } - } - -# have to be selected all at once - ha:strong_groups { - li:SPI { SCK, MISO, MOSI } - li:I2C { SDA, SCL } - li:USI { SCK, DI, DO } - } }