QUOTE (Варяг @ Aug 26 2011, 11:38)

Так как я не понял, как прервать функцию scanf
Читайте ответы внимательнее:
QUOTE (ReAl @ Aug 23 2011, 09:56)

Как в CodeVision -- не подскажу.
Но обработку таймаутов надо на нижний уровень и садить. В avr-gcc, если бы такое захотелось, я бы в подставляемые мной функции ввода/вывода байта для данного файлового объекта поселил бы обработку таймаутов и возврат признака EOF, который и до scanf-а добежал бы. scanf вернул бы 0 (точнее, меньше полей, чем запрошено).
А сбрасывать процессор можно через Watchdog Timer.