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

 
 
 
Reply to this topicStart new topic
> Вопросы програмирования LPC2294, порты и ТД вопросы есть
kuk
сообщение Feb 1 2006, 10:05
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 14-12-05
Пользователь №: 12 189



Я тут поглядел как устроен порты ввода вывода в lpc2294 и ужаснулся ктоже такое придумал это копец я хочу спросить про то как можно вывести какое то число в порт как я понял устанавливаются они записью 1 в IO0SET а сбрасываются записью 1 в IO0CLR а что касается чтение данных это вообще производится из регистра IOPIN так вот исходя из этого извращения вопрос как кто реализовывал запись и чтение данных в/из порта help.gif
Go to the top of the page
 
+Quote Post
SimpleSoft
сообщение Feb 1 2006, 10:48
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



Цитата(kuk @ Feb 1 2006, 14:05) *
Я тут поглядел как устроен порты ввода вывода в lpc2294 и ужаснулся ктоже такое придумал это копец я хочу спросить про то как можно вывести какое то число в порт как я понял устанавливаются они записью 1 в IO0SET а сбрасываются записью 1 в IO0CLR а что касается чтение данных это вообще производится из регистра IOPIN так вот исходя из этого извращения вопрос как кто реализовывал запись и чтение данных в/из порта help.gif


// Запись в порт
IO0DIR = 0xFFFFFFFF; //Все GPIO на вывод.
IO0SET = (1<<n), где n-номер бита, который требуется установить.
IO0CLR = (1<<n), где n-номер бита, который требуется сбросить.

//Чтение из порта
IO0DIR = 0x0; // Все GPIO на вход
Value = IO0PIN; // Читаем состояние портов

Очень даже удобно с SET и CLR сделано, по ходу программирования поймёшь. Просто надо изменить подход к программированию портов с 51го biggrin.gif
Go to the top of the page
 
+Quote Post
kuk
сообщение Feb 1 2006, 11:05
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 14-12-05
Пользователь №: 12 189



Да побитно еще ничего ну я если нужно вывести например 8 битное число то ???
Go to the top of the page
 
+Quote Post
SimpleSoft
сообщение Feb 1 2006, 11:16
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



Цитата(kuk @ Feb 1 2006, 15:05) *
Да побитно еще ничего ну я если нужно вывести например 8 битное число то ???


// Запись в порт
IO0DIR = 0xFFFFFFFF; //Все GPIO на вывод.
IO0CLR = 0xFFFFFFFF; //Сбрасываем все биты
IO0SET = 0x55; // Выводим в порт 0x55
Go to the top of the page
 
+Quote Post
asen
сообщение Feb 1 2006, 11:35
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Да а может можно как то записать в IAR например в 3 байт порта одно байтное число не двигая его в сторону старшего разряда много много раз
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 1 2006, 13:08
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(asen @ Feb 1 2006, 14:35) *
Да а может можно как то записать в IAR например в 3 байт порта одно байтное число не двигая его в сторону старшего разряда много много раз


Ну так напишите IO0SET = (0x55 << 0x18), и ничего больше двигать не надо smile.gif
Go to the top of the page
 
+Quote Post
SimpleSoft
сообщение Feb 1 2006, 13:21
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



Цитата(aaarrr @ Feb 1 2006, 17:08) *
Цитата(asen @ Feb 1 2006, 14:35) *

Да а может можно как то записать в IAR например в 3 байт порта одно байтное число не двигая его в сторону старшего разряда много много раз


Ну так напишите IO0SET = (0x55 << 0x18), и ничего больше двигать не надо smile.gif



Запись на asm::::
LDR R0, =0xE0028000
MOV R1, 0x55
MVN R2, 0x00
STR R2, [R0, #8]
STR R2, [R0, #0xC]
STR R1, [R0, #4]
Go to the top of the page
 
+Quote Post
vesago
сообщение Feb 2 2006, 08:29
Сообщение #8


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Цитата(asen @ Feb 1 2006, 15:35) *
Да а может можно как то записать в IAR например в 3 байт порта одно байтное число не двигая его в сторону старшего разряда много много раз


Я когда ознакомился с яром для авр и вообще с авр сначала не понял удобства конструкции типа PORT = (0x3 << 2) - PORT = 00001100, но потом очень понравилось. Компилятор вычисляет константы - в данном случае 00001100 и подставляет в качестве операнда. В яре и хедеры на это заточены. В карме мне очень не хватает таких хедеров, где все биты сфр таким образом прописаны. Народ если у кого есть такой хедер может поделитесь?
Go to the top of the page
 
+Quote Post
SimpleSoft
сообщение Feb 2 2006, 12:22
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



Цитата(vesago @ Feb 2 2006, 12:29) *
Цитата(asen @ Feb 1 2006, 15:35) *

Да а может можно как то записать в IAR например в 3 байт порта одно байтное число не двигая его в сторону старшего разряда много много раз


Я когда ознакомился с яром для авр и вообще с авр сначала не понял удобства конструкции типа PORT = (0x3 << 2) - PORT = 00001100, но потом очень понравилось. Компилятор вычисляет константы - в данном случае 00001100 и подставляет в качестве операнда. В яре и хедеры на это заточены. В карме мне очень не хватает таких хедеров, где все биты сфр таким образом прописаны. Народ если у кого есть такой хедер может поделитесь?



ИМХО. Проще на ассемблере изваять, темболее проще и удобнее ассемблера для процессоров я не встречал.
Go to the top of the page
 
+Quote Post
vesago
сообщение Feb 2 2006, 14:37
Сообщение #10


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Да, действительно, ассемблер у армов замечательный и не сложный (как мне показалось). Но не хочется разбираться с тонкостями архитектуры, досконально вникать в режимы адресации или банально запоминать мнемонику. Хочеться сконцетрироваться на алгоритме цельного устройства.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 2 2006, 15:28
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vesago @ Feb 2 2006, 10:29) *
В карме мне очень не хватает таких хедеров, где все биты сфр таким образом прописаны. Народ если у кого есть такой хедер может поделитесь?

Так возьмите красивые *.h из IAR. Какие проблемы. Ну разве убрать местами всунутую проверку на IARовский компилятор.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 1st July 2025 - 08:01
Рейтинг@Mail.ru


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