X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Farm.git;a=blobdiff_plain;f=betty%2Finterrupts.c;h=7d319dbaadb7bf665e3ce3db91c8a5ef78107cff;hp=df99354c84c4cebb60bca5c0d15f8363e61db589;hb=HEAD;hpb=8ec47a7e5b5658c93eeed6776685cb05ae942fdf diff --git a/betty/interrupts.c b/betty/interrupts.c index df99354..7d319db 100644 --- a/betty/interrupts.c +++ b/betty/interrupts.c @@ -158,11 +158,13 @@ void interrupt_tc_config(u8 tcnum,u8 mode,u8 cap,u32 psv) { if(tcnum==0) { T0TCR=0x03; + T0TC=0; T0CTCR=mode|(cap<<2); T0PR=psv; } else { T1TCR=0x03; + T1TC=0; T1CTCR=mode|(cap<<2); T1PR=psv; } @@ -180,14 +182,14 @@ void interrupt_tc_match_config(u8 tcnum,u8 mnum,u32 val,u8 mode) { if(tcnum==0) { T0MCR=(T0MCR&0x0fff)|(mode<<(3*mnum)); - mrddr=&T0MR0 + mraddr=(u32 *)&T0MR0; } else { T1MCR=(T1MCR&0x0fff)|(mode<<(3*mnum)); - mrddr=&T1MR0 + mraddr=(u32 *)&T1MR0; } - mraddr[mnum]=val; + *((volatile u32 *)(mraddr+mnum))=val; } void interrupt_tc_capt_config(u8 tcnum,u8 cnum,u8 mode) { @@ -209,40 +211,27 @@ void interrupt_tc_ir_set(u8 tcnum,u8 tcmc) { if(tcnum>1) return; - if(tcnum==0) { + if(tcnum==0) T0IR=tcmc; - T0TCR=0x01; - } - else { + else T1IR=tcmc; - T1TCR=0x01; - } -} - -// pwm interrupts -void interrupt_pwm_set_rate(u32 rate) { - - PWMMR0=rate; } -void interrupt_pwm_match_config(u8 mnum,u8 op,u8 mode,u32 val1,u32 val2) { - - u32 *addr=&PWMR0; - - *((volatile u32 *)(addr+mnum))=mval; - PWMMCR=(PWMMCR&0x1fffff)|(mode<<(op*3)); -} +void interrupt_tc_enable(u8 tcnum) { -void interrupt_pwm_enable(u8 mode,u32 ps_val) { + if(tcnum>1) + return; - PWMPR=ps_val; - PWMTCR=0x0b; + if(tcnum==0) + T0TCR=0x01; + else + T1TCR=0x01; } +// pwm interrupts void interrupt_pwm_ir_set(u8 pwm_channel) { PWMIR=(pwm_channel&0x0f)|((pwm_channel&0x70)<<4); - PWMTCR=0x09; } /*