Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Задание

Давайте превратим MB2 в сирену! Но не в какую-нибудь сирену, а в сирену, управляемую прерываниями. Тогда мы сможем включить сирену, а остальная программа будет продолжать работать, не обращая на неё внимания.

Заставьте сирену плавно менять высоту тона от 440 Гц до 660 Гц и обратно за период в одну секунду. Основная программа должна запустить сирену, затем вывести десятисекундный обратный отсчёт от 10 до 1, затем остановить сирену и вывести «launch!». Во время отсчёта основная программа не должна вмешиваться в работу сирены: она должна управляться только прерываниями.

Подсказка: мне было проще всего использовать глобальную блокируемую структуру Siren, которая владела состоянием сирены и периферией, нужной для её работы.

Это сложная программа, в которой используется много новых идей. Не удивляйтесь, если на её разбор уйдёт некоторое время.