ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
90385 Топик полностью
Т.Достоевский (29.05.2007 23:53, просмотров: 1) ответил Vit на ИМХО, знать асм полезно, но не задумывались ли Вы, почему за С-компиляторы гораздо чаще просют денег, чем за асм?
Согласен абсолютно! Особенно в в свете появления двухядерных мелкоконтроллеров. Я в мнемониках запутался однозначно. Повесил их на стенке. Но как иАче сделать разрешение вложенных прерываний на 51х. Там при обработке прерываний флаг глобальных прерываний не сбрасывается, а запрещаются только те что с более низким прриоритетом. И чтоб не заморачиваться с ртос можно по результатам обработки этого прерывания произвести какое нибудь действие(например ад собрал нужное количество данных). А чтоб вообще ничего не пропустить надо опять разрешить ВСЕ прерывания. Это можно сделать только командой RETI. Только она может сбросить логику приоритетов. Но тогда всё на этом и закончится. Поэтому делают так: mov r1,#m1/256 ;в 51 это загрузка константы push r1 mov r1,#m1%256 ;порядок следования не помню push r1 RETI m1: ;полсе RETI он перейдёт СЮДА! ххх; Сдесь совместимость дефайнов это ПРИНЦИПИАЛЬНАЯ ВЕШЬ Такие конструкции очень чреваты переполнением стека и повторным выполнением. Ставьте их только на точно вымеренные прерывания (tc_ovf ADC_ok итд). И только если речь идёт о серийных (крупносерийных) проэктах где сэкономленная внешняя микросхема ценой в 0.5 долара, приносит прибыль лично вам как программеру 0.5 * 10^6 посчитайте сами. ЗЫ кстати примерно так работают атомарные ртос. У них вызванная задача выполняется до полного завершения.