nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 04:17



Reply to topic  [ 58 posts ]  Go to page 1, 2, 3, 4  Next
Планы на ближайшее время 
Author Message
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Чтобы у читателей темы не создавалось впечатления, что в NedoPC-90 начался застой, буду кратко писать тут над чем работаю. Присоединяйтесь (в смысле - если кто над чем работает в этой же области - постите сюда планы, проекты, идеи) :)

Сейчас идет работа над следующими вещами:

1. Прикручивание NedoPC-90.AVROS к контроллеру ATMega128.
2. Прикручивание поддержки FLASH-памяти к NedoPC-90.AVROS.
3. Прикручивание клавиатуры (матрица 4х4) к NedoPC-90.AVROS.

Как будут результаты (то есть то, что можно сфотать и показать) - пришлю.


14 Aug 2005 19:35
Profile
Senior

Joined: 28 Feb 2005 02:31
Posts: 159
Location: Krasnodar, Russia
Reply with quote
SfS wrote:
Чтобы у читателей темы не создавалось впечатления, что в NedoPC-90 начался застой, буду кратко писать тут над чем работаю. Присоединяйтесь (в смысле - если кто над чем работает в этой же области - постите сюда планы, проекты, идеи) :)

Сейчас идет работа над следующими вещами:

1. Прикручивание NedoPC-90.AVROS к контроллеру ATMega128.
2. Прикручивание поддержки FLASH-памяти к NedoPC-90.AVROS.
3. Прикручивание клавиатуры (матрица 4х4) к NedoPC-90.AVROS.

Как будут результаты (то есть то, что можно сфотать и показать) - пришлю.

Вот клава - это интересно. я пока с недопц-90 ничего не делал. А вот с мега8515 делаю, но к данной теме не относящееся. просто для того, чтоб понять, что как делается... Я ведь начинающий :)


15 Aug 2005 01:00
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
acidrain wrote:
Вот клава - это интересно. я пока с недопц-90 ничего не делал.


А что тебя именно в прикручивании клавы интересует ? Это обычная матрица. 4 строки на 4 столбца. Опрос производим, подавая на строку 0 (остальные столбцы в 1) и считывая состояние столбцов. Чтобы опросить состояние всей клавиатуры надо 4 раза подать 0 на строки и 4 раза считать состояние столбцов. Ну и далее - задержки на дребезг и т.п., но это уже мелочи. Как опишу все в программе, так выложу новую версию NedoPC-90.AVROS.

acidrain wrote:
А вот с мега8515 делаю, но к данной теме не относящееся. просто для того, чтоб понять, что как делается... Я ведь начинающий :)


Как это "не относящееся" ? Думаю и на меге8515 NedoPC-90.AVROS запустится без особых проблем. (На меге128 запустилась после исправления одной строчки в Makefile AVR-MCU=atmega128 и прошивки fuse-битов CKSEL0..3=0x0A, M103C=0).

Так что (я думаю) и на меге8515 все запустится после пары тычков.

Если есть вопросы - не стесняйся, спрашивай. Не факт, что на се отвечу, но чем смогу...


16 Aug 2005 18:59
Profile
Senior

Joined: 28 Feb 2005 02:31
Posts: 159
Location: Krasnodar, Russia
Reply with quote
SfS wrote:
acidrain wrote:
Вот клава - это интересно. я пока с недопц-90 ничего не делал.


А что тебя именно в прикручивании клавы интересует ? Это обычная матрица. 4 строки на 4 столбца. Опрос производим, подавая на строку 0 (остальные столбцы в 1) и считывая состояние столбцов. Чтобы опросить состояние всей клавиатуры надо 4 раза подать 0 на строки и 4 раза считать состояние столбцов. Ну и далее - задержки на дребезг и т.п., но это уже мелочи. Как опишу все в программе, так выложу новую версию NedoPC-90.AVROS.

acidrain wrote:
А вот с мега8515 делаю, но к данной теме не относящееся. просто для того, чтоб понять, что как делается... Я ведь начинающий :)


Как это "не относящееся" ? Думаю и на меге8515 NedoPC-90.AVROS запустится без особых проблем. (На меге128 запустилась после исправления одной строчки в Makefile AVR-MCU=atmega128 и прошивки fuse-битов CKSEL0..3=0x0A, M103C=0).

Так что (я думаю) и на меге8515 все запустится после пары тычков.

Если есть вопросы - не стесняйся, спрашивай. Не факт, что на се отвечу, но чем смогу...

Т.е. речь идет о механической клаве, как на спеке? а если пц клаву приделать? LordVader сделал для амиги на авр-ке контролер клавы...
Интересно, а Pelle C откомпилит аврос? =)
Спасибо за предложение о помощи! Буду рад замучать странными вопросами ;)))


18 Aug 2005 03:44
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
acidrain wrote:
Т.е. речь идет о механической клаве, как на спеке? а если пц клаву приделать? LordVader сделал для амиги на авр-ке контролер клавы...


Речь идет (в данном случае) о телефонной клаве. Прикручивать клаву от писюка - смысла в большинстве случаев не имеет. Если тебе надо сложно и много рулить устройством - это проще и удобнее сделать через RS232й.
А для пульта управления каким-нибудь простым устройством достаточно обычной 16-кнопочной клавиатуры. На двустрочном текстовом индикаторе WP1602 нетрудно организовать систему меню. (О том как его прикрутить тут уже рассказывалось, поддержка его в ОС тоже есть).

Кстати, о клаве от писюка. У нас тут парни занимались ее прикручиванием к АВРке, но сам я не делал этого. Говорят, что проблем никаких особых нет.

acidrain wrote:
Интересно, а Pelle C откомпилит аврос? =)
Спасибо за предложение о помощи! Буду рад замучать странными вопросами ;)))


Я даже не знаю что такое есть Pelle C. Но думаю - врядли откомпилирует без обработки напильником. Самое простое - скачай gcc, он свободный. И не заморачивайся :)
Дело в том, что сама ОСька при компиляции завязана на библиотеки avr-libc и я не уверен, что Pelle C в состоянии их понять.


18 Aug 2005 18:55
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Итак, клавиатура прикручена, написаны процедуры ввода чисел и менюшки. Причем, через макросы их можно сконфигурить не только к имеющемуся на сегодня индикатору WP1602, но и к любому другому.

Для этого достаточно иметь процедуры:

1. Очистки индикатора.
2. Позиционирования курсора.
3. Вывода символа в позицию курсора со сдвигом курсора на следующую позицию.
4. Получения символа с клавиатуры (или еще откуда, если клава не устраивает).

Управляющие клавиши определяются также через макросы.

Сейчас идет прикручивание FLASHки AT45DB081b объемом 8Мбит (4096 секторов по 264 байта каждый). Проблема собственно не в прикручивании, а в поддержке какойнибудь примитивной файловой системы.

Скоро (в ближайшую неделю наверное) причешу и выложу то, что будет достаточно отлажено.


25 Aug 2005 20:23
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Ну вот, флешка прикручена. Сейчас сделаю нормальную прозрачную работу для пользователя (API для работы с флэшкой). И все скопом выложу.

Кстати, я сейчас в отпуске, потому появляюсь редко. Через неделю выйду на работу - буду постоянно на связи.


07 Sep 2005 20:53
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
SfS wrote:
Ну вот, флешка прикручена. Сейчас сделаю нормальную прозрачную работу для пользователя (API для работы с флэшкой). И все скопом выложу.

Кстати, я сейчас в отпуске, потому появляюсь редко. Через неделю выйду на работу - буду постоянно на связи.


Ты как специально покрываешь те девайсы, которые я хочу заюзать в прототипе калькулятора-компьютера со встроенным языком программирования RW1 :)

Мне остается только интерпретатор байт-кода написать и компилятор с RW1 в байт-код на самом RW1 - и тогда штучка на уровне "Электроники МК-85" получится, а то и лучше :idea:

_________________
:dj: https://mastodon.social/@Shaos


09 Sep 2005 18:40
Profile WWW
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Shaos wrote:
Ты как специально покрываешь те девайсы, которые я хочу заюзать в прототипе калькулятора-компьютера со встроенным языком программирования RW1 :)


Неудивительно. Ведь связка клавиатура-дисплей-процессор-память покрывает огромное количество устройтв - от калькулятора до системы управления стиральной машиной.

Shaos wrote:
Мне остается только интерпретатор байт-кода написать и компилятор с RW1 в байт-код на самом RW1 - и тогда штучка на уровне "Электроники МК-85" получится, а то и лучше :idea:


То есть ты хочешь запихать в AVR запихать интерпретатор RW1 ? Это прекрасно, только работать будет небыстро.


14 Sep 2005 22:29
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Флешка представлена как единый файл размером от 0 до 1048320 байт. (имеется ввиду флешка AT49DB081).

Работа с флешкой требует в памяти кэша раззмером 264 байта.
Сделал для флешки следующие функции:

int open() - проверяет есть ли флешка, форматирована ли она и т.п. возвращает код ошибки в зависимости от результата. (0 - успешное выполнение).

int close() - синхронизирует содержимое флешки с кэшэм, завершает работу с флешкой и возвращает 0. Если флешка была не открыта предварительно функцией open() - возвращает -1.

int read(char* buf, long int size) - считывает size байт в буфер buf. Возвращает количество считанных байт или код ошибки (-1), если флешка была не открыта предварительно функцией open().

int write(char* buf, long int size) - записывает size байт из буфера buf во флешку. Возвращает количество записанных байт или код ошибки (-1), если флешка была не открыта предварительно функцией open().


В общем все работает... НО! Не быстро - увы... 1мегабайт на ATmega128 - 8MГц пишется порядка 3х минут. То есть скорость записи (средняя) - всего около 5.5 Кбайт/сек. С другой стороны - вряд ли надо единовременно писать объемы больше нескольких Кбайт.

В общем судите сами для чего это все подходит, а для чего - нет. Скоро выложу исходники и схемы.


14 Sep 2005 22:44
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
SfS wrote:
Shaos wrote:
Мне остается только интерпретатор байт-кода написать и компилятор с RW1 в байт-код на самом RW1 - и тогда штучка на уровне "Электроники МК-85" получится, а то и лучше :idea:


То есть ты хочешь запихать в AVR запихать интерпретатор RW1 ? Это прекрасно, только работать будет небыстро.


Точнее интерпретатор байткода RW0. И в будущем - редактор и компилятор из RW1 в RW0. В первом приближении важна функциональность, а не скорость!

_________________
:dj: https://mastodon.social/@Shaos


15 Sep 2005 18:36
Profile WWW
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Shaos wrote:
Точнее интерпретатор байткода RW0. И в будущем - редактор и компилятор из RW1 в RW0. В первом приближении важна функциональность, а не скорость!


Что касается интерпретатора - то я за. Только с RW я почти никак не знаком - только понаслышке.
Предусматривает ли этот самый RW возможность определения своих не-RW функций ? Чтобы, скажем, все времякритичные куски писать на асме и С, которые будут постоянно прошиты в программной памяти, а из RW обращаться с ними как со встроенными функциями языка ? Тогда ОС обретет именно смысл ОС - в ней будет сосредоточены все критические части плюс интерпретатор байт-кода.
Тогда для пользователя (то есть RW-программиста) расширение ОС будет равносильно добавлению новых команд-функций в язык RW.


15 Sep 2005 19:13
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
SfS wrote:
Shaos wrote:
Точнее интерпретатор байткода RW0. И в будущем - редактор и компилятор из RW1 в RW0. В первом приближении важна функциональность, а не скорость!


Что касается интерпретатора - то я за. Только с RW я почти никак не знаком - только понаслышке.
Предусматривает ли этот самый RW возможность определения своих не-RW функций ? Чтобы, скажем, все времякритичные куски писать на асме и С, которые будут постоянно прошиты в программной памяти, а из RW обращаться с ними как со встроенными функциями языка ? Тогда ОС обретет именно смысл ОС - в ней будет сосредоточены все критические части плюс интерпретатор байт-кода.
Тогда для пользователя (то есть RW-программиста) расширение ОС будет равносильно добавлению новых команд-функций в язык RW.


RW1 имеет специальную команду COMMAND N, где N - номер внешней операции, которая может быть реализована в коде процессора и иметь доступ ко всем регистрам и переменным виртуальной машины.

Вопрос - у тебя обязательно задавать лишь периодические действия, которые по прерыванию выполняются определенное кол-во раз в секунду или можно основную ветку программы тоже организовать?

_________________
:dj: https://mastodon.social/@Shaos


15 Sep 2005 19:29
Profile WWW
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Shaos wrote:
RW1 имеет специальную команду COMMAND N, где N - номер внешней операции, которая может быть реализована в коде процессора и иметь доступ ко всем регистрам и переменным виртуальной машины.


А ей синоним дать можно ? Скажем нечто вроде

#define FileOpen(f) COMMAND 4(f)

чтобы понятнее писать было ?

Shaos wrote:
Вопрос - у тебя обязательно задавать лишь периодические действия, которые по прерыванию выполняются определенное кол-во раз в секунду или можно основную ветку программы тоже организовать?


Конечно ! Все что в ../upl/main.c это обычная программа, которая начинается с функции main(). На прерывания вешаются только действия привязанные ко времени.

Если я правильно понял, то ты хочешь в основную ветку интерпритатор RW0 запихать ?

Я на досуге ознакомлюсь с RW поподробнее - может что еще попридумаю.


15 Sep 2005 22:53
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
SfS wrote:
Shaos wrote:
RW1 имеет специальную команду COMMAND N, где N - номер внешней операции, которая может быть реализована в коде процессора и иметь доступ ко всем регистрам и переменным виртуальной машины.


А ей синоним дать можно ? Скажем нечто вроде

#define FileOpen(f) COMMAND 4(f)

чтобы понятнее писать было ?


Можно описать подпрограмму:

FileOpen() // A=f
{
command 4
}

и вызывать ее в виде FileOpen(f), где f может быть указателем на строку (первый аргумент автоматически передастся в регистр A):

def filename[10]="file.txt"
FileOpen(&filename) // A=&filename;CALL FileOpen

_________________
:dj: https://mastodon.social/@Shaos


16 Sep 2005 07:09
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 58 posts ]  Go to page 1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.