[an error occurred while processing this directive]
|
в "студийном" ХЛЭПе скромно забыли упомянуть, что :
а)Есть ограничения на суммарную длину строки <имя макроса>+<идентификатор внутри макроса>. В версиях "студии" 3.56 и младше из-за этого были глюки. В более новых не проверял
б)В макросах нельзя использовать вызов подпрограмм как входящих в состав макроса так и не входящих в его состав
в)вообще нельзя передавать управление за пределы макроса даже если Вы используете конструкцию вида rjmp PC+0x07 {т.е. даже когда компилятору не надо разрешать символические метки}
г)В конце макроса нельзя оставлять пустую метку, так как в противном случае пропускается следующая сразу после макроса команда программы
д)нумерация параметров должна быть обязательно с нуля и номера параметров должны идти пододряд, т.е. @0, @1, @1 и т.д.
И хотя Atmel не рекомендует использование вложенных макросов, но я проверял на простых примерах: до глубины 4 - работает