PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل روتین وقفه با اولویت پایین



bidgol
22-07-2009, 19:46
من در کامپایلر MICROC نیاز به برنامه نویسی دو روتین مربوط به وقفه با اولویت بالا و پایین هستم ولی در این کامپایلر برای میکروی سری PIC18 فقط می توان از وقفه اولویت بالا استفاده کرد .
حال راه حل دوستان چیست؟
ممنون میشم هر کس اطلاعاتی داره در اختیارم بذاره.

kavir
23-07-2009, 02:35
سلام
دقیقا متوجه منظورتون نشدم کدوم وقفه می گید و برای چه منظور می خواین استفاده کنید
یک مثال بزنید :roll:

bidgol
23-07-2009, 11:01
سلام کویر جان
برای مثال من یک وقفه سرریز تایمر 0 دارم و یک وقفه مر بوط به adc، حال وقفه تایمر را دارای اولویت بالا (high priority) و وقفه مربوط به adc را اولویت پایین(low priority) در نظر می گیرم.
در میکرو سی برای میکرو سری 18 وقفه اولویت پایین را نمی توان استفاده کرد.


برای نوشتن وقفه (اولویت بالا) از کلمه کلیدی interrupt استفاده می شود:

void interrupt(){
.
.
.

}

حال راه حل برای وقفه اولویت پایین چیست؟

آیا در کامپایلر ccs می توان برای هر دو نوع وقفه (اولویت بالا و پایین)برنامه نویسی انجام داد.

kavir
23-07-2009, 11:23
من دقیق mikroc رو بررسی نکردم ولی فکر می کنم در یکی از مثال هاش کلیه وقفه ها رو توضیح داده بود توی راهنما نبود
این لیست وقفه های ccs هست برای ad هم وقفه تعریف شده در راهنماش بخش interrupts
Syntax:
#INT_AD
Analog to digital conversion complete

#INT_ADOF
Analog to digital conversion timeout

#INT_BUSCOL
Bus collision

#INT_BUSCOL2
Bus collision 2 detected

#INT_BUTTON
Pushbutton

#INT_CANERR
An error has occurred in the CAN module

#INT_CANIRX
An invalid message has occurred on the CAN bus

#INT_CANRX0
CAN Receive buffer 0 has received a new message

#INT_CANRX1
CAN Receive buffer 1 has received a new message

#INT_CANTX0
CAN Transmit buffer 0 has completed transmission

#INT_CANTX1
CAN Transmit buffer 0 has completed transmission

#INT_CANTX2
CAN Transmit buffer 0 has completed transmission

#INT_CANWAKE
Bus Activity wake-up has occurred on the CAN bus

#INT_CCP1
Capture or Compare on unit 1

#INT_CCP2
Capture or Compare on unit 2

#INT_CCP3
Capture or Compare on unit 3

#INT_CCP4
Capture or Compare on unit 4

#INT_CCP5
Capture or Compare on unit 5

#INT_COMP
Comparator detect

#INT_COMP0
Comparator 0 detect

#INT_COMP1
Comparator 1 detect

#INT_COMP2
Comparator 2 detect

#INT_CR
Cryptographic activity complete

#INT_EEPROM
Write complete

#INT_ETH
Ethernet module interrupt

#INT_EXT
External interrupt

#INT_EXT1
External interrupt #1

#INT_EXT2
External interrupt #2

#INT_EXT3
External interrupt #3

#INT_I2C
I2C interrupt (only on 14000)

#INT_IC1
Input Capture #1

#INT_IC2QEI
Input Capture 2 / QEI Interrupt

#IC3DR
Input Capture 3 / Direction Change Interrupt

#INT_LCD
LCD activity

#INT_LOWVOLT
Low voltage detected

#INT_LVD
Low voltage detected

#INT_OSC_FAIL
System oscillator failed

#INT_OSCF
System oscillator failed

#INT_PMP
Parallel Master Port interrupt

#INT_PSP
Parallel Slave Port data in

#INT_PWMTB
PWM Time Base

#INT_RA
Port A any change on A0_A5

#INT_RB
Port B any change on B4-B7

#INT_RC
Port C any change on C4-C7

#INT_RDA
RS232 receive data available

#INT_RDA0
RS232 receive data available in buffer 0

#INT_RDA1
RS232 receive data available in buffer 1

#INT_RDA2
RS232 receive data available in buffer 2

#INT_RTCC
Timer 0 (RTCC) overflow

#INT_SPP
Streaming Parallel Port Read/Write

#INT_SSP
SPI or I2C activity

#INT_SSP2
SPI or I2C activity for Port 2

#INT_TBE
RS232 transmit buffer empty

#INT_TBE0
RS232 transmit buffer 0 empty

#INT_TBE1
RS232 transmit buffer 1 empty

#INT_TBE2
RS232 transmit buffer 2 empty

#INT_TIMER0
Timer 0 (RTCC) overflow

#INT_TIMER1
Timer 1 overflow

#INT_TIMER2
Timer 2 overflow

#INT_TIMER3
Timer 3 overflow

#INT_TIMER4
Timer 4 overflow

#INT_TIMER5
Timer 5 overflow

#INT_ULPWU
Ultra-low power wake up interrupt

#INT_USB
Universal Serial Bus activity




Note many more #INT_ options are available on specific chips. Check the devices .h file for a full list for a given chip.