STC15W408AS library 0.15.0
Loading...
Searching...
No Matches
interrupt.h
Go to the documentation of this file.
1#ifndef STC15_INTERRUPTSH
2#define STC15_INTERRUPTSH
3
4#include<stdbool.h>
5#include<sys.h>
6#include<bits.h>
7
77#define INTERRUPT_INT0 0
78
84#define INTERRUPT_INT1 2
85
91#define INTERRUPT_COUNTER0 1
92
98#define INTERRUPT_TIMER0 1
99
105typedef enum
106{
108 LOW = 0,
110 HIGH = 1
112
125
135#define enable_mcu_interrupts() (EA = 1)
136
146#define disable_mcu_interrupts() (EA = 0)
147
155#define is_mcu_interrupts_enabled() (EA == 1)
156
164#define enable_low_voltage_interrupt() (ELVD = 1)
165
173#define disable_low_voltage_interrupt() (ELVD = 0)
174
183#define is_low_voltage_interrupt_enabled() (ELVD == 1 && is_mcu_interrupts_enabled())
184
192#define enable_adc_interrupt() (EADC = 1)
193
201#define disable_adc_interrupt() (EADC = 0)
202
211#define is_adc_interrupt_enabled() (EADC == 1 && is_mcu_interrupts_enabled())
212
220#define enable_uart1_interrupt() (ES = 1)
221
229#define disable_uart1_interrupt() (ES = 0)
230
239#define is_uart1_interrupt_enabled() (ES == 1 && is_mcu_interrupts_enabled())
240
248#define enable_int0_interrupt() (EX0 = 1)
249
257#define disable_int0_interrupt() (EX0 = 0)
258
267#define is_int0_interrupt_enabled() (EX0 == 1 && is_mcu_interrupts_enabled())
268
276#define enable_int1_interrupt() (EX1 = 1)
277
285#define disable_int1_interrupt() (EX1 = 0)
286
295#define is_int1_interrupt_enabled() (EX1 == 1 && is_mcu_interrupts_enabled())
296
304#define enable_int2_interrupt() (bit_set(INT_CLKO, SBIT4))
305
313#define disable_int2_interrupt() (bit_clr(INT_CLKO, CBIT4))
314
323#define is_int2_interrupt_enabled() (test_if_bit_set(INT_CLKO, SBIT4) && is_mcu_interrupts_enabled())
324
332#define enable_int3_interrupt() (bit_set(INT_CLKO, SBIT5))
333
341#define disable_int3_interrupt() (bit_clr(INT_CLKO, CBIT5))
342
351#define is_int3_interrupt_enabled() (test_if_bit_set(INT_CLKO, SBIT5) && is_mcu_interrupts_enabled())
352
360#define enable_int4_interrupt() (bit_set(INT_CLKO, SBIT6))
361
369#define disable_int4_interrupt() (bit_clr(INT_CLKO, CBIT6))
370
379#define is_int4_interrupt_enable() (test_if_bit_set(INT_CLKO, SBIT6) && is_mcu_interrupts_enabled())
380
388#define enable_timer0_interrupt() (ET0 = 1)
389
397#define disable_timer0_interrupt() (ET0 = 0)
398
407#define is_timer0_interrupt_enabled() (ET0 == 1 && is_mcu_interrupts_enabled())
408
416#define enable_timer2_interrupt() (bit_set(IE2, SBIT2))
417
425#define disable_timer2_interrupt() (bit_clr(IE2, CBIT2))
426
435#define is_timer2_interrupt_enabled() (test_if_bit_set(IE2, SBIT2) && is_mcu_interrupts_enabled())
436
444#define enable_spi_interrupt() (bit_set(IE2, SBIT1))
445
453#define disable_spi_interrupt() (bit_clr(IE2, CBIT1))
454
463#define is_spi_interrupt_enabled() (test_if_bit_set(IE2, SBIT1) && is_mcu_interrupts_enabled())
464
472#define set_pca_interrupt_priority(priority) (PPCA = priority)
473
481#define get_pca_interrupt_priority() (PPCA)
482
490#define set_low_voltage_interrupt_priority(priority) (PLVD = priority)
491
499#define get_low_voltage_interrupt_priority() (PVLD)
500
508#define set_adc_interrupt_priority(priority) (PADC = priority)
509
517#define get_adc_interrupt_priority() (PADC)
518
525#define set_uart1_interrupt_priority(priority) (PS = priority)
526
534#define get_uart1_interrupt_priority() (PS)
535
542#define set_int0_interrupt_priority(priority) (PX0 = priority)
543
551#define get_int0_interrupt_priority() (PX0)
552
560#define set_int1_interrupt_priority(priority) (PX1 = priority)
561
569#define get_int1_interrupt_priority() (PX1)
570
578#define set_timer0_interrupt_priority(priority) (PT0 = priority)
579
587#define get_timer0_interrupt_priority() (PT0)
588
596#define set_spi_interrupt_priority(priority) (priority == HIGH ? bit_set(IP2, SBIT1) : bit_clr(IP2, CBIT1))
597
605#define get_spi_interrupt_priority() (test_if_bit_set(IP2, SBIT1))
606
614#define set_int0_interrupt_trigger(trigger) ( IT0 = trigger)
615
624#define get_int0_interrupt_trigger() (IT0)
625
633#define set_int1_interrupt_trigger(trigger) (IT1 = trigger)
634
643#define get_int1_interrupt_trigger() (IT1)
644
645#endif
external_interrupt_trigger_t
Definition interrupt.h:119
interrupt_priority_t
Definition interrupt.h:106
@ ONLY_FALLING_EDGE
Generate interrupt only on fallign edge.
Definition interrupt.h:123
@ RAISING_OR_FALLING_EDGE
Generate interrupt on both raise and falling edges.
Definition interrupt.h:121
@ HIGH
High priority.
Definition interrupt.h:110
@ LOW
Low priority.
Definition interrupt.h:108