# 2018-2019 Deeltoets 2 ## Opgaven De opgaven kun je vinden op: [https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2018-2019_Deeltoets_2.pdf](https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2018-2019_Deeltoets_2.pdf) ## Uitwerkingen ### Toetsvraag 1 ```c #include // C #pragma vector = TIMER0_A1_VECTOR __interrupt void timer0_isr(void) { P1OUT ^= BIT5; TA0CTL &= ~TAIFG; // reset TAIFG } int main(void) { WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer // A P1DIR |= BIT5; // = mag ook P1OUT |= BIT5; // = mag ook // B BCSCTL3 = LFXT1S_2; // LFXT1S_2 = Mode 2 for LFXT1 : VLO TA0CTL = TASSEL_1 | ID_2 | MC_1 | TAIE; // TASSEL_1 = Timer A clock source select: 1 - ACLK // ID_2 = Timer A input divider: 2 - /4 // MC_1 = Timer A mode control: 1 - Up to CCR0 TA0CCR0 = 749; // C __enable_interrupt(); // D __low_power_mode_3(); return 0; } ``` ### Toetsvraag 1 Alternatieve oplossing ```c #include // C #pragma vector = TIMER0_A0_VECTOR __interrupt void timer0_isr(void) { P1OUT ^= BIT5; // TA0CCTL0 &= ~CCIFG; // flag CCIFG wordt automatisch gereset. } int main(void) { WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer // A P1DIR |= BIT5; // = mag ook P1OUT |= BIT5; // = mag ook // B BCSCTL3 = LFXT1S_2; // LFXT1S_2 = Mode 2 for LFXT1 : VLO TA0CTL = TASSEL_1 | ID_2 | MC_1; // TASSEL_1 = Timer A clock source select: 1 - ACLK // ID_2 = Timer A input divider: 2 - /4 // MC_1 = Timer A mode control: 1 - Up to CCR0 TA0CCR0 = 749; TA0CCTL0 = CCIE; // C __enable_interrupt(); // D __low_power_mode_3(); return 0; } ``` The TACCR0 CCIFG flag is automatically reset when the TACCR0 interrupt request is serviced. Zie [http://www.ti.com/lit/ug/slau144j/slau144j.pdf#page=367](http://www.ti.com/lit/ug/slau144j/slau144j.pdf#page=367). ### Toetsvraag 2 en 3 De antwoorden op toetsvraag 2 en 3 kun je vinden op: [https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2018-2019_Deeltoets_2_antwoordblad.pdf](https://bitbucket.org/HR_ELEKTRO/ems10/wiki/Toetsen/2018-2019_Deeltoets_2_antwoordblad.pdf)