Hi
I've just started using STM8 microcontrollers, specifically the STM8S003F3P6 
chip, in my own custom test board. The board works and I am able to blink an 
LED on PA3 without using an interrupt.However, when I try to make the blink 
take place in the Tim2_OVF interrupt, nothing happens. I think the interrupt is 
not taking place. What have I missed??
I saw this on the mailing list.  My code includes the "rim" instruction.
https://sourceforge.net/p/sdcc/mailman/message/35618801/

My complete code is below. It blinks the led 5 times before the timer TIM2 is 
started. My SDCC version is 3.9.0Your help is appreciated.
#include <stdint.h>#include <stm8s.h>
#define F_CPU 2000000UL#define LED_PIN     3
void delay_ms(uint16_t ms);

char tix, i,j,six, mins, b_chgLED;
void mS125_isr() __interrupt(TIM2_OVF_ISR) { tix++; if(tix==8) {  six++; tix=0; 
} if(six==60) { mins++; six=0; }  if(tix==0 || tix==4) { PA_ODR ^= (1 << 
LED_PIN); }     TIM2_SR1 &= ~(1 << TIM2_SR1_UIF); 
}//----------------------------------------------------------------------------
//Main routine startsvoid main() {    PA_DDR |= (1 << LED_PIN); // configure 
PA3 as output    PA_CR1 |= (1 << LED_PIN); // push-pull mode
    /* Prescaler = 128 */    TIM2_PSCR = 0b00000111;
    /* Frequency = F_CLK / (2 * prescaler * (1 + ARR))     *           = 2 MHz 
/ (2 * 128 * (1 + 1952)) = 8 Hz */    TIM2_ARRH = 0x07; TIM2_ARRL = 0xa1;
 for(i=0;i<10;i++) {        /* toggle pin initially with a delay */        
PA_ODR ^= (1 << LED_PIN);        delay_ms(125);    }
 __asm__("rim\n");
    TIM2_IER |= (1 << TIM2_IER_UIE); // Enable Update Interrupt    TIM2_CR1 |= 
(1 << TIM2_CR1_CEN); // Enable TIM2
    while 
(1){};}//---------------------------------------------------------------------------void
 delay_ms(uint16_t ms) {    long li;    for (li = 0; li < ((F_CPU / 18000UL) * 
ms); li++)        __asm__("nop\n");}

Thanks and Warm Regards
Shiv
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to