ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
423471 Топик полностью
Apтём (10.07.2013 15:59, просмотров: 181) ответил AU08 на В Atmel Studio 6.0 завелось легко и сразу, debug чётко работает.
Что-то такое выдаёт(студия 6.1):  { while(1) { int16_t f1; f1 = Add_Sample_Ufa(1449); 0000021E LDI R24,0xA9 Load immediate 0000021F LDI R25,0x05 Load immediate 00000220 CALL 0x00000122 Call subroutine 00000222 MOVW R28,R24 Copy register pair f1 += Add_Sample_Ufa(2050+f1); 00000223 SUBI R24,0xFE Subtract immediate 00000224 SBCI R25,0xF7 Subtract immediate with carry 00000225 CALL 0x00000122 Call subroutine 00000227 ADD R28,R24 Add without carry 00000228 ADC R29,R25 Add with carry f1 += Add_Sample_Ufa(1451+f1); 00000229 MOVW R24,R28 Copy register pair 0000022A SUBI R24,0x55 Subtract immediate 0000022B SBCI R25,0xFA Subtract immediate with carry 0000022C CALL 0x00000122 Call subroutine 0000022E ADD R28,R24 Add without carry 0000022F ADC R29,R25 Add with carry f1 += Add_Sample_Ufa(1+f1); 00000230 MOVW R24,R28 Copy register pair 00000231 ADIW R24,0x01 Add immediate to word 00000232 CALL 0x00000122 Call subroutine 00000234 ADD R28,R24 Add without carry 00000235 ADC R29,R25 Add with carry f1 += Add_Sample_Ufa(-1451+f1); 00000236 MOVW R24,R28 Copy register pair 00000237 SUBI R24,0xAB Subtract immediate 00000238 SBCI R25,0x05 Subtract immediate with carry 00000239 CALL 0x00000122 Call subroutine 0000023B ADD R28,R24 Add without carry 0000023C ADC R29,R25 Add with carry f1 = Add_Sample_Ufa(-2052+f1); 0000023D MOVW R24,R28 Copy register pair 0000023E SUBI R24,0x04 Subtract immediate 0000023F SBCI R25,0x08 Subtract immediate with carry 00000240 CALL 0x00000122 Call subroutine --- P:\AVR_GCC\optimize_test_as6\optimize_test_as6\Debug/.././optimize_test_as6.cpp 00000242 MOVW R28,R24 Copy register pair f1 += Add_Sample_Ufa(-1453+f1); 00000243 SUBI R24,0xAD Subtract immediate 00000244 SBCI R25,0x05 Subtract immediate with carry 00000245 CALL 0x00000122 Call subroutine 00000247 ADD R28,R24 Add without carry 00000248 ADC R29,R25 Add with carry f1 += Add_Sample_Ufa(-2+f1); 00000249 MOVW R24,R28 Copy register pair 0000024A SBIW R24,0x02 Subtract immediate from word 0000024B CALL 0x00000122 Call subroutine 0000024D ADD R28,R24 Add without carry 0000024E ADC R29,R25 Add with carry f1 += Add_Sample_Ufa(1454+f1); 0000024F MOVW R24,R28 Copy register pair 00000250 SUBI R24,0x52 Subtract immediate 00000251 SBCI R25,0xFA Subtract immediate with carry 00000252 CALL 0x00000122 Call subroutine 00000254 ADD R28,R24 Add without carry 00000255 ADC R29,R25 Add with carry f1 = Add_Sample_Ufa(2055+f1); 00000256 MOVW R24,R28 Copy register pair 00000257 SUBI R24,0xF9 Subtract immediate 00000258 SBCI R25,0xF7 Subtract immediate with carry 00000259 CALL 0x00000122 Call subroutine 0000025B MOVW R28,R24 Copy register pair f1 += Add_Sample_Ufa(1456+f1); 0000025C SUBI R24,0x50 Subtract immediate 0000025D SBCI R25,0xFA Subtract immediate with carry 0000025E CALL 0x00000122 Call subroutine 00000260 ADD R28,R24 Add without carry 00000261 ADC R29,R25 Add with carry f1 += Add_Sample_Ufa(3+f1); И так далее... То есть что-то там считается.
Отключил антивирус, откатил полностью системный диск (на состояние до установки AS 6.0), переустановил AS 6.1 ещё раз.
Может и правда с системой что-то, странно это.
дальше только поверх "скользит"
Скользит? Как это?
показывает на вызов функции увеличение счетчика команд на пару циклов всего - что неверно.
На все расчёты показывает что-то в районе ~17000 тактов. Код странный местами: void main() { while (1) { // расчёты.... //TODO:: Please write your application code break; } } break зачем? Из main-а выход? Куда?