[an error occurred while processing this directive]
|
приблизительно одинаково,
использовал прерывание от таймера 0 - так Васик сделал вначале обработки прерывания push всех 32 регистров (r0-r31) а в конце соответсвенно pop,
похоже размер у Васика больше потому что слабоватая оптимизация - постоянно встречаются одинаковые конструкции, когда Кодевижен одинаковые вынес в подпрограммы, даже если вызываются 2 раза.
Разница по размеру с пиком, я посмотрел происходит, потому что операции с переменными (которые находяться в RAM) происходят так - переменная (допустим 16 бит) вначале загружается в регистровую пару, с парой делается нужная операция (тут с математикой у АВР лучше) и затем пара регистров запихивается обратно в RAM. У 16 пиков нет RAM - там любые операции делаются только с регистрами, правда есть неудобство - банки, хотя если используется компилятор - сам все сделает.
E-mail: info@telesys.ru