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

 
 
> PIC32МХ695F512Н, не читает порт Б
andreichk
сообщение Jul 26 2012, 10:16
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143



Привет Народ, Подскажите как правильно оформить запись для чтения и записи данных в массиивы с порта Б , так, чтобы в один массив записывались младшие байты, а в другой старшие.
Предварительно в код вписаны след. строки:

созданы 2 глоб. массива
unsigned int TFT_A[512]; // Глобальный буфер А
unsigned int TFT_B[512]; // Глобальный буфер Б

порт Б настроен на вход
TRISB = 0b1111111111111111;//читаем данные с A,B на PORTB

и собственно кусок кода для записи в массивы:

Код
   unsigned int x;  
for( x=0;x<512;x++){

       TFT_A[x] = *(((unsigned char*)(&PORTB)));//чтение порта RB0-7

       TFT_B[x] = *(((unsigned char*)(&PORTB))+1);//чтение порта RB8-15
}


Для отладки на порт подаётся 16ти битный сигнал со счётчика запрограмированного в плиске.проверено осциллографом. В результате чтение и запись старших битов кое-как, а младшие вообще не записываются.
Что я не так сделал? Заранее спасибо.


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
evc
сообщение Jul 26 2012, 12:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266



А просто так:

Код
for( x=0;x<512;x++){

       TFT_A[x] = PORTB & 0xFF;//чтение порта RB0-7

       TFT_B[x] = PORTB / 256;//чтение порта RB8-15
}


Уточнение:
Если вам скорость критична, то ваш код по-моему должен выглядеть так:
Код
for( x=0;x<512;x++){

       TFT_A[x] = *((unsigned char*)(&PORTB));//чтение порта RB0-7

       TFT_B[x] = *((unsigned char*)(&PORTB + 1));//чтение порта RB8-15
}


--------------------
УЭР
Go to the top of the page
 
+Quote Post



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

 


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


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