| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| MCC18 въпрос http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1817 |
Страница 1 от 1 |
| Автор: | bkulev [ Сря Фев 15, 2006 12:43 pm ] |
| Заглавие: | MCC18 въпрос |
Има ли булев тип променливи? Никъде в документацията на компилатора не го видях. В примерите видях дефинирани флагове в структури, но това не решава напълно въпроса. Какво трябва да се направи, ако искаш да дефинираш функция която връща TRUE/FALSE ?!? Така ли е и с компилаторите на CCS и Hi-Tech ? И един страничен въпрос - Някой знае ли програма по подобие на терминалните, но да работи с USB-тата? Най - добре би било, ако работи не само с ASCII, но и с HEX или само с HEX. |
|
| Автор: | Dimiter [ Сря Фев 15, 2006 1:09 pm ] |
| Заглавие: | |
При MCC18 не знам как е но при CCS е така: int1 Function(); май и така ставаше boolean Funcction(); |
|
| Автор: | TheWizard [ Сря Фев 15, 2006 1:11 pm ] |
| Заглавие: | |
MCC18 за boolean връща byte... |
|
| Автор: | Syrius-B [ Сря Фев 15, 2006 1:13 pm ] | |||||||||
| Заглавие: | Re: MCC18 въпрос | |||||||||
Аз пък отдавна търся терминална програма за PocketPC |
||||||||||
| Автор: | Nikola Kirov [ Сря Фев 15, 2006 1:19 pm ] |
| Заглавие: | |
bkulev за терминал по usb. Ако не намериш нещо свястно В "логически анализатор" има FTDI terminal. Писал съм я за мои цели и определено не е нещо сериозно. Работи с чиповете FT232 i FT2232. |
|
| Автор: | Bezmozachen [ Сря Фев 15, 2006 1:23 pm ] |
| Заглавие: | |
Realterm не работи ли с USB-тата? |
|
| Автор: | bkulev [ Сря Фев 15, 2006 2:09 pm ] |
| Заглавие: | |
MCC18 не разпознава думите boolean, true и false. Значи да си дефинирам функцията като int или char и да и давам return 0/1 - ОК, това става, обаче защо да не мога да си дефинирам променлива от тип boolean и компилатора да ми задели 1 бит за нея А за терминала: Необходима ми е защото искам да използвам USB комуникациите на 4550. за RS си имам моя, но сега не ми се чете за да я доработя и за USB. Намерих една eval на http://www.hhdsoftware.com/ - USB monitor. За съжаление обаче, тя само прихваща комуникациите по USB-тата и не мога да изпращам от нея. |
|
| Автор: | Nikola Kirov [ Сря Фев 15, 2006 2:45 pm ] |
| Заглавие: | |
При мен нещо не работи нормално,но системата ми е малко странна и може и от нея да е било. Ако някой е решил проблема с няккава програма и на мен ми е интересно. #define TRUE 1 #define FALSE 0 и ще ги разпознава А за bool функцията. Компилаторите дето поддържат bool обикновенно заделят един баит за нея. Проблема е че няма как да адресираш един бит. така че bool[8] e 8 баита а не 1 struct { char MyVar1:1; char MyVar2:1; char MyVar3:1; char MyVar4:1; char MyVar5:1; char MyVar6:1; char MyVar7:1; char MyVar8:1; }; Такава неименована структура ти позволява да дефинираш променливите MyVar1 до MyVar8 да са наистина 1 бит. Но няма начин функцията ти да връща 1 бит. Ако искаш функцията ти да връща само един бит направи я void и в един фаил global.h които е преинклуднат в проекта и си дефинираш такава безименна структура като един от членовете и кръщаваш return_bool и всяка функция която искаш да ти е bool връща резултат в него. И след извикването на функцията го проверяваш. |
|
| Автор: | TheWizard [ Сря Фев 15, 2006 3:00 pm ] |
| Заглавие: | |
Трудно ще намериш USB "Терминал", защото проблема идва от многото различия във драйверите |
|
| Автор: | bkulev [ Сря Фев 15, 2006 3:38 pm ] |
| Заглавие: | |
Да Никола, това е ясно. Аз обаче очаквах тези TRUE и FALSE да са си дефинирани стандартно. Но сега, като се замисля, това вероятно е така, защото PIC-те нямат битово адресируема памет напр. като контролерите с ядра на 8051. От тук и липсата на стандартен тип boolean. На старницата на realterm пише, че работи и с USB, обаче аз не видях такова нещо. Може би имат пред вид виртуални COM портове, когато се използва преобразуватели USB<>RS232. |
|
| Автор: | evc [ Сря Фев 15, 2006 4:13 pm ] |
| Заглавие: | |
@bkulev, напротив цялото адресно пространство на пиковете е побитово достъпно/адресируемо! За разлика от 8051, където са само 32 байта. Но ANSI C не предполага работа с битове (стандартно). А типа boolean не е битова, а логическа променлива! Ако толкова държиш да работиш с int1 променливи - HITECH PICC ги поддържа (bit type). |
|
| Автор: | bkulev [ Сря Фев 15, 2006 5:43 pm ] |
| Заглавие: | |
OK, момчета ви благодаря за съдействието. @evc, мисля, че физическото изражение на логическата променлива е бит-а а за това че на пиковете цялото адресно пространство е побитово достъпно си прав, аз не го съобразих. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|