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

 
 
> книги по ARM7, AT91SAM7S
SAS-1983
сообщение Jan 28 2008, 14:40
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 39
Регистрация: 1-02-07
Пользователь №: 24 952



Добрый день Всем.

Только только начал изучение микроконтроллеров ARM7(AT91SAM7S) от Atmel. И хотелось бы узнать, существуют ли книги по этим микроконтроллерам и, если есть, то где их можно приобрести.

P.S. Не предлагать документацию на английском и ссылки на описание данного device-а, т.к. хотелось бы найти именно книгу.

Заранее спасибо.
Go to the top of the page
 
+Quote Post
7 страниц V  « < 4 5 6 7 >  
Start new topic
Ответов (75 - 89)
Alexashka
сообщение Jul 30 2008, 06:18
Сообщение #76


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



2 zltigo: теперь и я увидел насколько все плохо crying.gif по правде сказать я эти исходники толком не смотрел, но конструкции и правда нелепые.
кстати в вашем варианте видимо нужно вставить обнуление двух последних битов -четности (9) и стопового (10), последний всегда =1.
и еще объясните невежде что делает последняя строчка?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 07:38
Сообщение #77


Гуру
******

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



Цитата
...теперь и я увидел насколько все плохо

Это далеко не самый дивный код - посмотрите любимый многими LCD 2x16 вот там полный отвал башки.
Цитата(Alexashka @ Jul 30 2008, 08:18) *
кстати в вашем варианте видимо нужно вставить обнуление двух последних битов -четности (9) и стопового (10), последний всегда =1.

Они обнулены изначально в 32bit переменной data и обнуляются после приема последовательности. При использовании их просто обрезать, что и делается для stop. Можете сдвинуть еще на один бит и обрезать четность, но лучше оставить и анализировать/отсеивать потом по полному коду. Естественно, при нормальном подходе к делу их нужно контролировать - я не добавлял контроль start/stop, поскольку ставил целью просто повторить функционал и дать почувствовать разницу.
Цитата
и еще объясните невежде что делает последняя строчка?

То-же самое,что у Редькина 3 строчки:
Код
  U32 dum=0;
//разрешить следующее прерывание IRQ1
  dum =AT91C_BASE_PIOA->PIO_ISR;
  dum =dum; //чтобы не генерировалось замечание о неиспольз переменной

AT91C_BASE_PIOA->PIO_ISR это volatile, посему компилятор не может выкинуть обращение к PIO_ISR и будет произведено чтение "в никуда", что и требовалось.
Кстати, неиспользуемые переменные, например передаваемые аргументы, эффектнее заглушать так:
(void)dum;
Для читабельности можно макросик пользовать:
Код
#define USED(foo)    (void)(foo)
USED( dum );


Сообщение отредактировал zltigo - Jul 30 2008, 07:48


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Jul 30 2008, 08:34
Сообщение #78


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Кстати, неиспользуемые переменные, например передаваемые аргументы, эффектнее заглушать так:
(void)dum;
Для читабельности можно макросик пользовать:
Код
#define USED(foo)    (void)(foo)
USED( dum );


ясно...спасибо

кстати, хорошо бы стелать рубрику "полезные советы" smile.gif и добавлять туда такие кусочки кода
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 30 2008, 11:36
Сообщение #79


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(zltigo @ Jul 30 2008, 10:38) *
Для читабельности можно макросик пользовать:
USED( dum );

Для читабельности лучше обозвать "ignore".
Go to the top of the page
 
+Quote Post
Kirill Trusov
сообщение Aug 5 2008, 13:29
Сообщение #80


Частый гость
**

Группа: Свой
Сообщений: 90
Регистрация: 17-08-07
Пользователь №: 29 867



книгу можно скачать отсюда : http://www.infanata.org/civil/hardware/114...semejjstva.html
Go to the top of the page
 
+Quote Post
radiofill
сообщение Aug 17 2008, 01:26
Сообщение #81


Участник
*

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



Да. Эта книга "" будет полезна только как datasheet на русском языке, а про работу с IAR и примеры на С лучше пропустить - дабы мозг свой не засорять.
В качестве скромного примера как писать на языке Си, могу приложить написанную мной библиотеку для работы с LCD 4470, правда для AVR.
А в качестве учебника по языку Си кроме оригинального учебника лучше ничего не видел, в нём всё грамотно и достаточно просто описано (файл прилагается)
Прикрепленные файлы
Прикрепленный файл  lcd.rar ( 883 байт ) Кол-во скачиваний: 124
Прикрепленный файл  Kernighan_Ritchie__C_programming_Language__rus.rar ( 301.2 килобайт ) Кол-во скачиваний: 391
 
Go to the top of the page
 
+Quote Post
Kirill Trusov
сообщение Aug 17 2008, 07:39
Сообщение #82


Частый гость
**

Группа: Свой
Сообщений: 90
Регистрация: 17-08-07
Пользователь №: 29 867



спасибо, почитаю всё так ритчи
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 17 2008, 08:34
Сообщение #83


Гуру
******

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



Цитата(radiofill @ Aug 17 2008, 03:26) *
В качестве скромного примера как писать на языке Си, могу приложить написанную мной библиотеку для работы с LCD 4470

О Господи! Ну не надо так писать на С. Начиная с того, что это никак не "библиотека", извращеного использования хидера, мрачных 0bXXXXXX и совсем не сишных, "задержек от фонаря", asm( "nop" ), именования перменных и функций заглавными буквами, и прочего прочего... При этм тупейшая, лобовая работа с собственно 4470, ни разных режимов, ни опроса готовности, ни загрузки знакогенератора, ни чтения, ни сколь-нибудь реальных диаграмм (для нормального ARM там повылезают требования по выдержке сотен наносекунд )....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
tyro
сообщение Aug 17 2008, 08:55
Сообщение #84


Любитель Кошек
*****

Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873



Цитата(zltigo @ Aug 17 2008, 11:34) *
О Господи! ... тупейшая, лобовая работа с собственно 4470, ни разных режимов, ни опроса готовности, ни загрузки знакогенератора, ни чтения, ни сколь-нибудь реальных диаграмм (для нормального ARM там повылезают требования по выдержке сотен наносекунд )....

Не сочтете ли Вы возможным, в качестве позитивной части обсуждения, выложить код (по возможности с комментариями), как надо делать? smile.gif


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 17 2008, 09:47
Сообщение #85


Гуру
******

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



Цитата(tyro @ Aug 17 2008, 10:55) *
Не сочтете ли Вы возможным...

Что делать? Писать на С, или работать с LCD? Это в общем-то разные вещи. Если речь идет о поминаемой "библиотеке", то там комментировать и править совершенно нечего - все с 0. Если о C - то есть хорошие книги - по тому-же стилю поминал на форуме недавно Ритчи и Пайка...
Если о том,как с текстовой железякой LCD работать - пожалуй могу несколько кусочков выложить - приходилось как-то один раз работать - результаты оформленные ввиде заготовки сохранены.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
radiofill
сообщение Aug 17 2008, 11:52
Сообщение #86


Участник
*

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



Цитата(zltigo @ Aug 17 2008, 12:34) *
О Господи! Ну не надо так писать на С. Начиная с того, что это никак не "библиотека", извращеного использования хидера, мрачных 0bXXXXXX и совсем не сишных, "задержек от фонаря", asm( "nop" ), именования перменных и функций заглавными буквами, и прочего прочего... При этм тупейшая, лобовая работа с собственно 4470, ни разных режимов, ни опроса готовности, ни загрузки знакогенератора, ни чтения, ни сколь-нибудь реальных диаграмм (для нормального ARM там повылезают требования по выдержке сотен наносекунд )....


Согласен задержки лучше через счётчик сделать, но эт будет тяжеловато для поимания.
Go to the top of the page
 
+Quote Post
radiofill
сообщение Aug 17 2008, 19:16
Сообщение #87


Участник
*

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



Цитата(zltigo @ Aug 17 2008, 12:34) *
О Господи! Ну не надо так писать на С. Начиная с того, что это никак не "библиотека", извращеного использования хидера, мрачных 0bXXXXXX и совсем не сишных, "задержек от фонаря", asm( "nop" ), именования перменных и функций заглавными буквами, и прочего прочего... При этм тупейшая, лобовая работа с собственно 4470, ни разных режимов, ни опроса готовности, ни загрузки знакогенератора, ни чтения, ни сколь-нибудь реальных диаграмм (для нормального ARM там повылезают требования по выдержке сотен наносекунд )....

Не судите строго - я самоучка, спросить совершенно некого. Может у меня книги плохие были?... Учился сначала по "учебнику" по AVRам, Голубцов вроде автор был. Но недавно осозал что лучше родных даташитов ничего не найдёшь....
А заголовочник для 4470 отлично работает, задержки для тактовой частоты 14 МГц. Функция проверки готовности BF_READ()... Можно было готовый заголовочник взять, но захотелось попрактиковаться.
И опять же по поводу книг, кроме книги Редькина по ARMам на русском языке ничего не нашёл :-/
Хотелось бы посмотреть на вашу библиотеку для LCD.
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Aug 17 2008, 19:27
Сообщение #88


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(radiofill @ Aug 17 2008, 15:52) *
Согласен задержки лучше через счётчик сделать, но эт будет тяжеловато для поимания.

В АВР задержки через таймер расточительно. Но задержки это самая малая часть проблемы. Вы в заголовочном файле размещаете не инлайновые функции и переменные! Представьте ситуацию, что вывод на LCD потребуется сделать из двух модулей - вы подключите этот заголовок в каждый модуль и в результате получите все функции и переменные в двух экземплярах. Естественно линкер будет нецензурно ругаться. Правда CV сам не стандартный и линкера не имеет вовсе, вот и появляются на свет такие странные конструкции. Если Вас устраивает - пользуйтесь, но никому не показывайте. smile.gif
Кстати двоичной записи в стандарте C нет. Вы книжку то почитайте...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 17 2008, 21:19
Сообщение #89


Гуру
******

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



Цитата(radiofill @ Aug 17 2008, 21:16) *
Хотелось бы посмотреть на вашу библиотеку для LCD.

Могу дать, только это не претендует на некую супер библиотеку, это просто аккуратно с пониманием того, что делается написанный код, который при необходимости достаточно легко модифицируется под разные условия использования и разное железо. Писался вкупе с лабораторной работой и меню в свое время где-то за субботний день, потом по мелочи добавлялся.... Для публикации не предназначался. Предназначается в текущем виде для LPC2000. На вопросы, в том числе и каверзные могу ответить smile.gif
Прикрепленные файлы
Прикрепленный файл  lcd_z.rar ( 2.46 килобайт ) Кол-во скачиваний: 190
 


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
radiofill
сообщение Aug 18 2008, 19:21
Сообщение #90


Участник
*

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



Цитата
В АВР задержки через таймер расточительно. Но задержки это самая малая часть проблемы. Вы в заголовочном файле размещаете не инлайновые функции и переменные! Представьте ситуацию, что вывод на LCD потребуется сделать из двух модулей - вы подключите этот заголовок в каждый модуль и в результате получите все функции и переменные в двух экземплярах. Естественно линкер будет нецензурно ругаться. Правда CV сам не стандартный и линкера не имеет вовсе, вот и появляются на свет такие странные конструкции. Если Вас устраивает - пользуйтесь, но никому не показывайте.
Кстати двоичной записи в стандарте C нет. Вы книжку то почитайте...


Почему через таймер расточительно? а как же тогда? если задержка к примеру 30ms?

Про модуль не совсем понял. Вы про то, что надо в начале написать чтото вроде:
#if !defined(LCD.h)
#define LCD.h
......
#endif

А насчёт двоичной записи- мне так проще было с флагами эксперементировать laughing.gif

... а книгу по ARMам я так и не нашёл(... Редькин не в счёт
Может хоть ссылка у кого есть? В частности хотелось бы понять как в AT90 Linux запихать и как потом с этим управляться
Go to the top of the page
 
+Quote Post

7 страниц V  « < 4 5 6 7 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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