|
|
 |
Ответов
|
Jan 30 2008, 10:10
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
То есть другими словами у 51 ядра сильный нолик, и слабая единичка. То есть если порт выдает нули, и кто-то подаст на него единички, то это конфликт и что-то может сгореть, а если порт выдает единички, то его состояние можно изменить... беспокоит 2 вещи: 1. не повлияет ли слабая единичка на работу ключей, ведь ключи считай ее через базу-коллетор на землю просаживают (или я что-то не понимаю  )).... 2. кто на себя берет труд понимать откуда писать , куда читать? В асьме понятно могут быть разные команды, а в Кеиле? вот команда P4^=0x01; надо же сначала прочитать состояние порта, а потом туда записать измененное, не получится ли так, что прочитается состояние входного буфера?
|
|
|
|
|
Jan 30 2008, 17:52
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Golikov A. @ Jan 30 2008, 13:10)  То есть другими словами у 51 ядра сильный нолик, и слабая единичка. То есть если порт выдает нули, и кто-то подаст на него единички, то это конфликт и что-то может сгореть, а если порт выдает единички, то его состояние можно изменить... Именно так. У 51-го двунаправленный ввод-вывод "не настоящий". По сути, это открытый сток с подтяжкой в "1" слабым током. Правда, в конце цикла вывода в порт "единичка" на короткое время становится достаточно "сильной", чтобы быстрее перезаряжать ёмкости монтажа. Но замыкать вывод на "землю" неопасно. Цитата(Golikov A. @ Jan 30 2008, 13:10)  ...беспокоит 2 вещи: 1. не повлияет ли слабая единичка на работу ключей, ведь ключи считай ее через базу-коллетор на землю просаживают (или я что-то не понимаю  )).... Какие ключи и какая база-коллектор?  Вы о чём вообще? Базу биполярного транзистора с заземлённым эмиттером можно подключать к выводу порта непосредственно. Цитата(Golikov A. @ Jan 30 2008, 13:10)  ...2. кто на себя берет труд понимать откуда писать , куда читать? В асьме понятно могут быть разные команды, а в Кеиле?
вот команда P4^=0x01; надо же сначала прочитать состояние порта, а потом туда записать измененное, не получится ли так, что прочитается состояние входного буфера? Данная операция относится к типу "чтение-модификация-запись". При этом нужно соблюдать осторожность, потому что если из порта читается истинное состояние линий ввода-вывода, они могут "залипнуть". Если компилятор переводит данную операцию в XRL P4,#1, произойдёт чтение защёлки (а не порта), модификация и запись в защёлку, без залипаний. Я с компилером С для 51-х не работал, и точно сказать не могу, какой именно код он сгенерит, хотя, очень вероятно, что именно такой. Цитата(Мария Е @ Jan 30 2008, 20:23)  В принципе, я это знала, просто вызывает большие сомнения насчет использования портов как входов. Сначала записать туда все единички, а потом считывать пришедшие данные... странно как-то. Да, так. Потому, что порты у 51-го контроллера "недоделанные".  ЗЫ. Извиняюсь за некоторую путанность - торопился. На сайте Атмел есть хорошие мануалы. Почитать будет весьма не лишне.
Сообщение отредактировал Stanislav - Jan 30 2008, 19:41
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 30 2008, 20:06
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Большое спасибо, теперь стало все на свои места... а мануалы на атмеле обыскаться можно, все не через поиск выпадают... Цитата(Мария Е @ Jan 30 2008, 20:23)  В принципе, я это знала, просто вызывает большие сомнения насчет использования портов как входов. Сначала записать туда все единички, а потом считывать пришедшие данные... странно как-то. Кстати, программирую на Си в Кейле и не представляю, как там различается считывание из регистра или из защелки. А Ассемблер, к сожалению, не знаю. Если у кого-то есть опыт работы с портами, поделитесь. Ну сейчас меня будут пинать, но ассемблер в чистом виде уже не актуален... Пишите на С, в кейле, в дебаг режиме можно посмотреть какой ассемблерный код он создал для какой С строки, сверяясь с набором команд по мануалу от атмела (этот легко найти на сайте  ) можете понимать что делается, и примерно понять как создать ассемблерный код. Помню такого метода вполне хватало чтобы создавать ассемблерные вставки для ТМС320Ц6713, а у него и алу двойное, и много тонкостей. Так что думаю, что на ассемблерные вставки для этой микрухи такого метода выше крыши... Дабы не сильно пинали скажу почему так отношусь к Асму, Писать полный коммерческий код на асьме, по трудозатратам невыгодно. Если код легкий, то потери вызванные С кодом несоизмеримы с ресурсами которые есть в современных контроллерах и зачем мучится?, а если код сложный, то пока допишешь продукт уже не нужен будет  ... Ну это как бы мое мнение...
|
|
|
|
|
Jan 30 2008, 21:39
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 18-11-07
Из: Москва
Пользователь №: 32 424

|
Цитата Ну сейчас меня будут пинать, но ассемблер в чистом виде уже не актуален... Пишите на С, в кейле, в дебаг режиме можно посмотреть какой ассемблерный код он создал для какой С строки, сверяясь с набором команд по мануалу от атмела (этот легко найти на сайте  ) можете понимать что делается, и примерно понять как создать ассемблерный код. Я, конечно, попробую, но просто дело в том, что у меня Кейл не доломанный, дебаг запускается только для прог меньше 2 кбайт, а мой уже почти 4кб)) Спасибо огромное, надеюсь с помощью всех полученных советов  , справлюсь с посылкой и приемом данных)
|
|
|
|
Сообщений в этой теме
Мария Е I/o порты AT89C5131, подскажите, pls Jan 29 2008, 18:02 Golikov A. Цитата(Мария Е @ Jan 29 2008, 21:02) Здра... Jan 29 2008, 18:28 SALOME Цитата(Golikov A. @ Jan 30 2008, 01:28) А... Jan 30 2008, 03:32  Miron Цитата(SALOME @ Jan 30 2008, 06:32) Лучше... Jan 30 2008, 07:56  Egor-ka Цитата(Stanislav @ Jan 30 2008, 20:52) Да... Jan 31 2008, 09:59   Палыч Цитата(Egor-ka @ Jan 31 2008, 12:59)... Jan 31 2008, 10:16 Мария Е Цитата(Golikov A. @ Jan 29 2008, 21:28) н... Jan 30 2008, 17:23 Golikov A. Вопрос такой: если в случайной точке программы над... Feb 4 2008, 10:42 Палыч Цитата(Golikov A. @ Feb 4 2008, 13:42) Во... Feb 4 2008, 11:13  Golikov A. Цитата(Палыч @ Feb 4 2008, 14:13) Обычно,... Feb 4 2008, 11:41   Палыч Цитата(Golikov A. @ Feb 4 2008, 14:41) да... Feb 4 2008, 12:03 StasK А если, например пин P1_0 настроен на выход от тай... Apr 21 2008, 05:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|