| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| dspic33 проблем :-) http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=10266 |
Страница 1 от 1 |
| Автор: | Gogo [ Сря Юни 27, 2012 12:01 pm ] |
| Заглавие: | dspic33 проблем :-) |
Компилатора е C30 - v3.31, а контролера dsPIC33FJ256MC710 syscou = 65535-500; if(i) {while(syscou) continue;} "syscou" е unsigned int, а "i" е signed int syscou се увеличава на всеки 10мс в прекъсване от таймер. (syscou++;) Т.е. ако е изпълнено условието, ще има 5 секунди изчакване. Да, ама не!? Поне не и както е написано по-горе. Според контролера, syscou винаги е различен от 0 !? Като го напиша така: if(i) {while(syscou) printf("%d", syscou);} заработва. |
|
| Автор: | michev [ Сря Юни 27, 2012 12:24 pm ] | |||||||||
| Заглавие: | Re: dspic33 проблем :-) | |||||||||
Може компилатора да е оптимизирал мааалко в повече от колкото ти е нужно. Погледни асеблерския листинг дали всичко което си написал е там. Като за проба - бих сложил един НОП - asm("nop"); в цикъла.
|
||||||||||
| Автор: | ike [ Сря Юни 27, 2012 12:49 pm ] | |||||||||
| Заглавие: | Re: dspic33 проблем :-) | |||||||||
Освен, че е unsigned int, летлива ли е? |
||||||||||
| Автор: | rumen65 [ Сря Юни 27, 2012 12:51 pm ] |
| Заглавие: | Re: dspic33 проблем :-) |
А има ли? volatile syscou PS писали сме едновременно. |
|
| Автор: | Цецо [ Сря Юни 27, 2012 12:59 pm ] |
| Заглавие: | Re: dspic33 проблем :-) |
volatile... тая думичка трябва да ви винаги в главата като пишете ембедед код. |
|
| Автор: | Gogo [ Сря Юни 27, 2012 1:45 pm ] |
| Заглавие: | Re: dspic33 проблем :-) |
Да... с volatile се оправиха нещата. |
|
| Автор: | ¶ [ Чет Юли 05, 2012 3:31 am ] | |||||||||
| Заглавие: | Re: dspic33 проблем :-) | |||||||||
Ако обаче е дефинирана като volatile в един файл, а в друг я използваш дефинирана само като extern, то мисля, че пак ще се спече. |
||||||||||
| Автор: | Gogo [ Чет Юли 05, 2012 8:14 am ] | ||||||||||||||||||
| Заглавие: | Re: dspic33 проблем :-) | ||||||||||||||||||
Дефинирана е:
В другия, който е видим от всички, е:
|
|||||||||||||||||||
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|