реклама на сайте
подробности

 
 
> char + char = int как такое сделать, Сделать из двух байт целое
bugor
сообщение Aug 27 2009, 17:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 26-02-09
Пользователь №: 45 408



Ситуатция известная -
- результат АЦП их двух байт в разных банках.
- работает три канала.
- есть массив из трех int.
Надо младший и старший байты результата АЦП обьединить в три целых переменных в массиве.

Чегото не получается никак - уже который раз пытаюсь. В AVR наких проблем нету, а на PIC редко пишу - направьте где посмотреть как это делается? Надо на СИ.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Herz
сообщение Aug 28 2009, 11:28
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



С Хай-теком всё в порядке, Вы сами себя замучили такой кашей, компилятор тут ни при чём. Ни к чему здесь наверняка ни асм-овые вставки, ни хитрости с прерываниями. Разберитесь сначала с битами конфигурации, работой АЦП. Выравнивание происходит правильно? MPLAB используете? В нём всё просто и удобно. Для объединения байтов в int есть несколько вариантов. Я использовал такой:
Код
.......
     union {unsigned int wor; unsigned char by[2];} voltIN;
     .......
    
     Vcm.by[0]=ADRESL;            // младший байт
     Vcm.by[1]=ADRESH;            // старший байт
     .......
     HEXDEC(Vcm.wor);            // обращение к целому int-у
     .......

И зачем Вам это:
Код
<span class="postcolor">volatile unsigned int U[3];// @ 0x20;        //массив из трех двухбайтных элементов </span>

почему не просто:
Код
unsigned int U[3];        //массив из трех двухбайтных элементов
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bugor   char + char = int как такое сделать   Aug 27 2009, 17:10
- - *antzol*   Это не подойдёт? int result = ((int)highByte <...   Aug 27 2009, 17:24
|- - bugor   Цитата(*antzol* @ Aug 27 2009, 21:24) Это...   Aug 27 2009, 18:01
|- - rezident   Цитата(bugor @ Aug 28 2009, 00:01) HTEC P...   Aug 27 2009, 19:07
- - *antzol*   За правильность не ручаюсь, т.к. с пиками давно не...   Aug 27 2009, 19:03
|- - bugor   Цитата(*antzol* @ Aug 27 2009, 23:03) За ...   Aug 27 2009, 20:12
- - *antzol*   ...   Aug 27 2009, 19:17
|- - Student Pupkin   А нельзя типа такого? Кодshort int adc_mass[3...   Aug 27 2009, 19:50
|- - bugor   Цитата(Student Pupkin @ Aug 27 2009, 23:5...   Aug 28 2009, 07:35
|- - Kane   Вот на что обратил внимание: Цитата(bugor @ ...   Aug 28 2009, 08:13
||- - bugor   Цитата(Kane @ Aug 28 2009, 12:13) Вот на ...   Aug 28 2009, 08:46
|- - tag   Код *(pU) = ADRESH; //старший байт в п...   Aug 28 2009, 09:57
|- - bugor   Цитата(tag @ Aug 28 2009, 13:57) Код *...   Aug 28 2009, 10:28
|- - Kane   Цитата(tag @ Aug 28 2009, 13:57) Код *...   Aug 28 2009, 10:33
- - DpInRock   char как и int - переменные со знаком. Если не зна...   Aug 27 2009, 22:40
- - DpInRock   ЦитатаПосле запрещения прерывания будут вычисления...   Aug 28 2009, 09:30
|- - bugor   Убрал запрещения и собственно ничего не изменилось...   Aug 28 2009, 09:50
- - bugor   ну так там написано в заголовке что pic12f675 ё...   Aug 28 2009, 10:45
- - bugor   Ну вот что получилось - ацп работает но результата...   Aug 28 2009, 15:45
|- - Student Pupkin   Цитата(bugor @ Aug 28 2009, 19:45) Ну вот...   Aug 28 2009, 18:45
- - Herz   Не пойму я, во-первых, зачем Вы структуру сюда при...   Aug 29 2009, 10:55
- - bugor   1. В функции задержки переменная i только для счет...   Aug 29 2009, 17:14
|- - Student Pupkin   Цитата(bugor @ Aug 29 2009, 21:14) 1. В ф...   Aug 29 2009, 18:39
||- - rezident   Цитата(Student Pupkin @ Aug 30 2009, 00:3...   Aug 31 2009, 18:36
|- - Herz   Цитата(bugor @ Aug 29 2009, 19:14) 4. Стр...   Aug 29 2009, 18:47
|- - demiurg_spb   Цитата(bugor @ Aug 29 2009, 21:14) 1. В ф...   Aug 31 2009, 18:28
- - XVR   Вот это if(Count++ < 3) { должно быть так if(++...   Aug 29 2009, 18:18
- - bugor   Ну вот собственно заработало. Проиллюстрирую попод...   Sep 6 2009, 14:41


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 03:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01345 секунд с 7
ELECTRONIX ©2004-2016