Adding Structure
Adding Structure
for
Embedded Systems
Antonio Martí Campoy
amarti@disca.upv.es
Goals
• To get knowledge about event-triggered and
time-triggered
• To get knowledge about embedded
applications structure
• To evaluate and decide the most suitable
structure
Polling Interrupts
• Real-time schedulers
while (1)
void delay_ms(int time)
{
{
if (Input_port_pin)
some kind of delay:
do_task();
loop, Hw timer…
delay_ms(500);
}
}
uint8_t peripheral_rdy()
{ void delay_ms(int time)
if (Input_port_pin) {
{ some kind of delay:
delay_ms(50); loop, Hw timer…
if (input_port_pin) return(1); }
}
return(0);
}
Input
signal
Filter
output
while (1)
{ Advantages:
do_task();
delay_ms(1000);
1.- It is simple
} 2.- It works fine if you are not
} very demanding
Now+=Next;
if (Now==HP) Now = 0;
}
__monitor Check_To_run_x ()
if (To_run_x == 1)…
A. Martí Campoy Adding structure 61
Time Triggered: Software scheduler
• Example of code (part 2)
void set_timer_next (void)
{
Now+=Next;
if (Now==HP) Now = 0;
}
Embedded Systems
Antonio Martí Campoy
amarti@disca.upv.es