| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Въпрос за C http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=7736 |
Страница 1 от 1 |
| Автор: | E1 [ Вто Апр 13, 2010 7:56 pm ] |
| Заглавие: | Въпрос за C |
Въпросът е по-скоро за МikroC. Има ли готова функция, която да прави следното: От две 8-битови променливи X_low и X_high да извлича 16-битова променлива, в която младшите 8 бита са X_low, а старшите X_high. Т.е. от две 8-битови променливи, да извлича 16-битова? |
|
| Автор: | Cekins [ Вто Апр 13, 2010 8:05 pm ] |
| Заглавие: | |
А няма ли възможност 8-битовите да се дефинират като alias-и на една 16-битова. Някой компилатори това си го правят автоматично. Това което аз ползвам даже няма нужда да дефинирам алиаси - горния си го кръщава с едно Н накрая а с долния си работи като 8-бит ако го обработвам като такъв. |
|
| Автор: | E1 [ Вто Апр 13, 2010 8:12 pm ] |
| Заглавие: | |
Виждал съм в други компилатори, че го има: X.low8=X_low; X.high8=X_high; Но в момента ползвам MikroC и не знам как да го направя там. А ми се струва доста глупаво да разбия X_low и X_high и да въвеждам Х бит по бит, извличайки битовете от двете променливи. Имам доста такива променливи, които са 16-битови и кодът ще стане... |
|
| Автор: | relsys [ Вто Апр 13, 2010 8:30 pm ] | |||||||||
| Заглавие: | ||||||||||
.... и няма да ти трябва да присвояваш стойности на Х. |
||||||||||
| Автор: | E1 [ Вто Апр 13, 2010 8:36 pm ] |
| Заглавие: | |
Благодаря! Така стана! Отличен вариант! |
|
| Автор: | ¶ [ Вто Апр 13, 2010 8:51 pm ] | |||||||||
| Заглавие: | ||||||||||
Така компилира ли се:
|
||||||||||
| Автор: | E1 [ Чет Апр 15, 2010 1:20 am ] |
| Заглавие: | |
Опитвам се да подкарам сензор за цветове на Sparkun: ADJD-S371 Обаче, изобщо не чува какво искам от него. Ползвам за база примерната програма за PIC и я преведох на MikroC. Но изобщо не иска да комуницира. Някой успявал ли е да го накара да работи? Не знам дали е дефект на сензора или е грешка в кода. Установих, че при опит за комуникация през I2C, програмата забива точно след подаването на "старт". За преминаване от 5-3,3-5 V съм използвал схема за конвертор на ниво с BSS138. Ето примерен код за четене на адрес: I2C1_Init(100000); I2C1_Start(); I2C1_Wr(0xE8); I2C1_Wr(0x44); I2C1_Repeated_Start(); I2C1_Wr(0xE9); in_byte = I2C1_Rd; I2C1_Stop(); Спира изпълнението след "Start". |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|