[ZLG-MCU] IAR SIGNAL定义中断

[复制链接]
2728|4
 楼主| ATmega32L 发表于 2008-3-3 19:37 | 显示全部楼层 |阅读模式
typedef&nbsp;void&nbsp;(*TSIGNAL)(void);<br />#define&nbsp;VECTOR(A)&nbsp;((A+4)*4)<br />#define&nbsp;SIGNAL(A)&nbsp;&nbsp;void&nbsp;SIGNAL_##A(void);__root&nbsp;static&nbsp;const&nbsp;TSIGNAL&nbsp;SIGNAL_##A##_HANDER&nbsp;@&nbsp;VECTOR(A)=SIGNAL_##A;void&nbsp;SIGNAL_##A(void)<br /><br />#define&nbsp;SIG_MPU_FAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;MPU&nbsp;fault&nbsp;handler&nbsp;<br />#define&nbsp;SIG_BUS_FAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;bus&nbsp;fault&nbsp;handler<br />#define&nbsp;SIG_USAGE_FAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;usage&nbsp;fault&nbsp;handler<br />#define&nbsp;SIG_RESERVED0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Reserved<br />#define&nbsp;SIG_RESERVED1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Reserved<br />#define&nbsp;SIG_RESERVED2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Reserved<br />#define&nbsp;SIG_RESERVED3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Reserved<br />#define&nbsp;SIG_SVCCALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SVCall&nbsp;handler<br />#define&nbsp;SIG_DEBUG_MONITOR&nbsp;&nbsp;&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Debug&nbsp;monitor&nbsp;handler<br />#define&nbsp;SIG_RESERVED4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Reserved<br />#define&nbsp;SIG_PENDSV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;PendSV&nbsp;handler<br />#define&nbsp;SIG_SYSTICK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;SysTick&nbsp;handler<br />#define&nbsp;SIG_GPIOA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12&nbsp;&nbsp;&nbsp;//&nbsp;GPIO&nbsp;Port&nbsp;A<br />#define&nbsp;SIG_GPIOB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13&nbsp;&nbsp;&nbsp;//&nbsp;GPIO&nbsp;Port&nbsp;B<br />#define&nbsp;SIG_GPIOC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIO&nbsp;Port&nbsp;C<br />#define&nbsp;SIG_GPIOD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIO&nbsp;Port&nbsp;D<br />#define&nbsp;SIG_GPIOE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIO&nbsp;Port&nbsp;E<br />#define&nbsp;SIG_UART0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UART0&nbsp;Rx&nbsp;and&nbsp;Tx<br />#define&nbsp;SIG_UART1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UART1&nbsp;Rx&nbsp;and&nbsp;Tx<br />#define&nbsp;SIG_SSI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SSI&nbsp;Rx&nbsp;and&nbsp;Tx<br />#define&nbsp;SIG_I2C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;I2C&nbsp;Master&nbsp;and&nbsp;Slave<br />#define&nbsp;SIG_PWM_FAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;21&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;PWM&nbsp;Fault<br />#define&nbsp;SIG_PWM_GENERATOR0&nbsp;&nbsp;22&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;PWM&nbsp;Generator&nbsp;0<br />#define&nbsp;SIG_PWM_GENGRATOR1&nbsp;&nbsp;23&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;PWM&nbsp;Generator&nbsp;1<br />#define&nbsp;SIG_PWM_GENGRATOR2&nbsp;&nbsp;24&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;PWM&nbsp;Generator&nbsp;2<br />#define&nbsp;SIG_QUADRATURE_ENCODER&nbsp;&nbsp;&nbsp;25&nbsp;//&nbsp;Quadrature&nbsp;Encoder<br />#define&nbsp;SIG_ADC0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ADC&nbsp;Sequence&nbsp;0<br />#define&nbsp;SIG_ADC1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ADC&nbsp;Sequence&nbsp;1<br />#define&nbsp;SIG_ADC2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;28&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ADC&nbsp;Sequence&nbsp;2<br />#define&nbsp;SIG_ADC3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;29&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ADC&nbsp;Sequence&nbsp;3<br />#define&nbsp;SIG_ADC4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Watchdog&nbsp;timer<br />#define&nbsp;SIG_TIMER0A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;31&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;0&nbsp;subtimer&nbsp;A<br />#define&nbsp;SIG_TIMER0B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;0&nbsp;subtimer&nbsp;B<br />#define&nbsp;SIG_TIMER1A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;1&nbsp;subtimer&nbsp;A<br />#define&nbsp;SIG_TIMER1B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;34&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;1&nbsp;subtimer&nbsp;B<br />#define&nbsp;SIG_TIMER2A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;2&nbsp;subtimer&nbsp;A<br />#define&nbsp;SIG_TIMER2B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;36&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;2&nbsp;subtimer&nbsp;B<br />#define&nbsp;SIG_COMPARATOR0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;37&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Analog&nbsp;Comparator&nbsp;0<br />#define&nbsp;SIG_COMPARATOR1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;38&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Analog&nbsp;Comparator&nbsp;1<br />#define&nbsp;SIG_COMPARATOR2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;39&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Analog&nbsp;Comparator&nbsp;2<br />#define&nbsp;SIG_SYSTEM_CONTROL&nbsp;&nbsp;40&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;System&nbsp;Control&nbsp;(PLL,&nbsp;OSC,&nbsp;BO)<br />#define&nbsp;SIG_FLASH_CONTROL&nbsp;&nbsp;&nbsp;41&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;FLASH&nbsp;Control<br />#define&nbsp;SIG_GPIOF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;42&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIO&nbsp;Port&nbsp;F<br />#define&nbsp;SIG_GPIOG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;43&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIO&nbsp;Port&nbsp;G<br />#define&nbsp;SIG_GPIOH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;44&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;GPIO&nbsp;Port&nbsp;H<br />#define&nbsp;SIG_UART2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;45&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UART2&nbsp;Rx&nbsp;and&nbsp;Tx<br />#define&nbsp;SIG_SSI1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;46&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SSI1&nbsp;Rx&nbsp;and&nbsp;Tx<br />#define&nbsp;SIG_TIMER3A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;47&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;3&nbsp;subtimer&nbsp;A<br />#define&nbsp;SIG_TIMER3B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;48&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Timer&nbsp;3&nbsp;subtimer&nbsp;B<br />#define&nbsp;SIG_I2C1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;49&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;I2C1&nbsp;Master&nbsp;and&nbsp;Slave<br />#define&nbsp;SIG_QUADRATURE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Quadrature&nbsp;Encoder&nbsp;1<br />#define&nbsp;SIG_CAN0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;51&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CAN0<br />#define&nbsp;SIG_CAN1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;52&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CAN1<br />#define&nbsp;SIG_CAN2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;53&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CAN2<br />#define&nbsp;SIG_ETHERET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;54&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Ethernet<br />#define&nbsp;SIG_HIBERNATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Hibernate<br /><br /><br />
hotpower 发表于 2008-3-6 15:35 | 显示全部楼层

总想着WINAVR~~~

  
 楼主| ATmega32L 发表于 2008-3-6 17:30 | 显示全部楼层

WinAVR中断写法实既方便,又好理解。

WinAVR中断写法实既方便,又好理解。<br /><br />IARAVR我也用WINAVR的中断写法。<br /><br /><br />#ifndef&nbsp;__IAR_SIGNAL_H__<br />#define&nbsp;__IAR_SIGNAL_H__<br /><br />#include&nbsp;&ltintrinsics.h&gt<br /><br />#define&nbsp;sei()&nbsp;__enable_interrupt()<br />#define&nbsp;cli()&nbsp;__disable_interrupt()<br /><br />#define&nbsp;_PRAGMA_STR(A)&nbsp;_Pragma(#A)<br />#define&nbsp;PRAGMA_STR(A)&nbsp;_PRAGMA_STR(A)<br />#define&nbsp;__VECTOR__(A)&nbsp;vector=A<br /><br />#define&nbsp;SIGNAL(A)<br />PRAGMA_STR(__VECTOR__(A))<br />__interrupt&nbsp;void&nbsp;SIGNAL##_##A(void)<br /><br />#define&nbsp;SIG_INTERRUPT0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT0_vect<br />#define&nbsp;SIG_INTERRUPT1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT1_vect&nbsp;&nbsp;&nbsp;&nbsp;<br />#define&nbsp;SIG_OUTPUT_COMPARE2&nbsp;&nbsp;&nbsp;&nbsp;TIMER2_COMP_vect&nbsp;&nbsp;&nbsp;&nbsp;<br />#define&nbsp;SIG_OVERFLOW2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIMER2_OVF_vect<br />#define&nbsp;SIG_INPUT_CAPTURE1&nbsp;&nbsp;&nbsp;&nbsp;TIMER1_CAPT_vect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />#define&nbsp;SIG_OUTPUT_COMPARE1A&nbsp;&nbsp;&nbsp;&nbsp;TIMER1_COMPA_vect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />#define&nbsp;SIG_OUTPUT_COMPARE1B&nbsp;&nbsp;&nbsp;&nbsp;TIMER1_COMPB_vect<br />#define&nbsp;SIG_OVERFLOW1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIMER1_OVF_vect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />#define&nbsp;SIG_OVERFLOW0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIMER0_OVF_vect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />#define&nbsp;SIG_SPI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPI_STC_vect<br />#define&nbsp;SIG_USART_RECV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USART_RXC_vect<br />#define&nbsp;SIG_UART_RECV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USART_RXC_vect<br />#define&nbsp;SIG_USART_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USART_UDRE_vect<br />#define&nbsp;SIG_UART_DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USART_UDRE_vect<br />#define&nbsp;SIG_USART_TRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USART_TXC_vect<br />#define&nbsp;SIG_UART_TRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USART_TXC_vect<br />#define&nbsp;SIG_ADC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADC_vect<br />#define&nbsp;SIG_EEPROM_READY&nbsp;&nbsp;&nbsp;&nbsp;EE_RDY_vect&nbsp;&nbsp;&nbsp;&nbsp;<br />#define&nbsp;SIG_COMPARATOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ANA_COMP_vect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />#define&nbsp;SIG_2WIRE_SERIAL&nbsp;&nbsp;&nbsp;&nbsp;TWI_vect<br />#define&nbsp;SIG_INTERRUPT2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INT2_vect<br />#define&nbsp;SIG_OUTPUT_COMPARE0&nbsp;&nbsp;&nbsp;&nbsp;TIMER0_COMP_vect<br />#define&nbsp;SIG_SPM_READY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPM_RDY_vect<br /><br />#endif<br /><br /><br />
hotpower 发表于 2008-3-7 00:30 | 显示全部楼层

哈哈~~~这样玩惯IAR且没玩过gcc的人是迷糊的~~~

  
zlgmcu 发表于 2008-3-7 08:46 | 显示全部楼层

符号系统只是个习惯问题,但总原则应当是“入乡随俗”

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

376

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部