| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| MCC18 bit manipulation http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=4551 |
Страница 1 от 1 |
| Автор: | ¶ [ Чет Юли 26, 2007 6:10 pm ] |
| Заглавие: | MCC18 bit manipulation |
Отново за MCC18 Направи ми впечатление дългия код, който се генерира при проверка на стойността на даден бит ( потребителски, не служебни битове ), вместо btfsc & btfss се правят andlw с маска за съответния бит, след това се вика някаква подпрограма, всичко това е за около 10-12 такта. Когато се нулира или сетва стойността на даден потребителски бит всичко е направено както трябва: bsf & bcf . Пробвам с различно деклариране на бит-променливите, обаче засега няма успех, MCC18 продължава да генерира тромавия си код при проверка за стойността на бит-променливите. Някой да се е преборвал в тази насока, с това чудо на компилаторите, наречено MCC18 Бях свикнал с краткия код на CCS при проверка на битове и кода на MCC18 ме дразни. |
|
| Автор: | Gogo [ Чет Юли 26, 2007 7:36 pm ] |
| Заглавие: | |
И при мене прави andlw с маска, но не вика никакви подпрограми. Пусни малко code да пробвам! |
|
| Автор: | ¶ [ Чет Юли 26, 2007 8:01 pm ] | |||||||||||||||||||||||||||||||||||||||||||||
| Заглавие: | ||||||||||||||||||||||||||||||||||||||||||||||
Значи, всичко идва от настройките за Default Storage Class ( auto, static ) and Enable/Disable integer promotion. Ето кодът:
Ето вариациите на генерирания код, в зависимост от горните настройки: 1). Default Storage Class: auto Integer Promotion: Disable
2). Default Storage Class: static Integer Promotion: Disable
3). Default Storage Class: auto Integer Promotion: Enable
4). Default Storage Class: static Integer Promotion: Enable
Явно Default Storage Class auto не бива да се използва |
||||||||||||||||||||||||||||||||||||||||||||||
| Автор: | Цецо [ Пет Юли 27, 2007 8:00 am ] |
| Заглавие: | |
Ами гледай сега. По принцип аз също съм го установил това. Затова винаги работя по подразбиране static. Верно че яде по бързо паметта, ама пък кода е много по бърз и компактен. А пък в прекъсвания е просто задължително.... А когато накрая все пак паметта не ми стигне, гледам в кои функции не бързам и ръчно почвам да обявявам auto. Но много рядко ми се налага. Ако ми трябва повече памет сменям архитектурта. На PIC18 определено стека не му е силна страна. То не му е и това идеята де.... |
|
| Автор: | ¶ [ Пет Авг 03, 2007 4:23 pm ] | |||||||||
| Заглавие: | Как смята MCC18 ? | |||||||||
Загубих си почти цял ден да псувам професора PIC18F2580, като си мислех, че има нещо гнило в EUSART модула, оказа се друга причината
Изглежда, MCC18 не може да пресмята правилно изрази с цели числа. Или аз бъркам ? |
||||||||||
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|