Курс: программирование AVR, учимся "с нуля"

 
1 2 3 4 5 6 7 12
RU termostat #15.06.2004 01:03
+
-
edit
 
+
-
edit
 

-=ELF=-
-ELF-

новичок
помогите начинающему:
ищу код на C : пример с кнопкими и светодиодами - поиск не работает для тем давностью более 7 дней, а беглый просмотр ничего не дал.

Еще может кто по русски обьяснит про DDRx + PORTx и PINx - как использовать PINx ?

не пинайте - в голове каша, запутался.

 
BG Реконструктор #15.06.2004 01:39
+
-
edit
 
termostat, 14.06.2004 23:03:08 :
Аааа, а у меня без ТВИ, у меня универсальный код - софтверный i2c т.е.

А файл распаковывать надо и смотреть.
 


Нафиг программный пользовать, если есть аппаратный?
 
RU termostat #15.06.2004 09:38
+
-
edit
 

termostat

аксакал

-=ELF=-, 15.06.2004 00:23:53 :
помогите начинающему:
 


Ответы на твои вопросы в курсе AVR avr123.by.ru и почиатй 1-ю страничку этого топика.
RU termostat #15.06.2004 09:39
+
-
edit
 
+
-
edit
 

darker

новичок
-=ELF=-, 15.06.2004 00:23:53:
Еще может кто по русски обьяснит про DDRx + PORTx и PINx - как использовать PINx ?
 

Нда... Раньше я тоже с ними помучался.
В общем читай.
Разряд DDRx - определяет направление передачи данных (0 - вход, 1 - выход).
Разряд PORTx - если вывод определен выходом (DDRx = 1), то:
если установлена 1 - то на выводе устанавливается лог. 1
если установлена 0 - то на выводе устанавливается лог. 0
если вывод определен входом (DDRx = 0), то PORTx - определяет состояние подтягивающего резистора (при PORTx = 1 резистор подключен)
Разряд PINx - доступен только для чтения и содержит физическое значение вывода порта.
 
BG Реконструктор #15.06.2004 10:25
+
-
edit
 
termostat, 15.06.2004 07:39:24 :
Resurrector, 15.06.2004 00:39:49 :
Нафиг программный пользовать, если есть аппаратный?
 


Дык не у всех АВР есть апаратный TWI.
 


Минимализм - это плохо. :)
 

Lioxa

втянувшийся
А как стереть 24С256 быстро ?
 
BG Реконструктор #15.06.2004 16:28
+
-
edit
 
Lioxa, 15.06.2004 14:24:20 :
А как стереть 24С256 быстро ?
 


????!!!??????? :blink:
 

Lioxa

втянувшийся
Resurrector, 15.06.2004 15:28:18 :
Lioxa, 15.06.2004 14:24:20 :
А как стереть 24С256 быстро ?
 


????!!!??????? :blink:
 


Ты имееш в виду хватит и електричество отключить ?
 
BG Реконструктор #15.06.2004 17:08
+
-
edit
 
Lioxa, 15.06.2004 14:51:02 :
Resurrector, 15.06.2004 15:28:18 :
Lioxa, 15.06.2004 14:24:20 :
А как стереть 24С256 быстро ?
 


????!!!??????? :blink:
 


Ты имееш в виду хватит и електричество отключить ?
 


прадназначение EEPROM - сохранят инфу при отключении питания.
 

Yuran

опытный

Лёха имел в виду, есть ли команды, позволяющие стереть чип полностью. Насколько я понял. B)
 
BG Реконструктор #15.06.2004 17:43
+
-
edit
 
Yuran, 15.06.2004 15:09:26 :
Лёха имел в виду, есть ли команды, позволяющие стереть чип полностью. Насколько я понял. B)
 


Что значит "стереть"? Перезаписать ячейки какой-нибудь ерундой?
 
+
-
edit
 

trainer

втянувшийся

Lioxa, 15.06.2004 15:24:20 :
А как стереть 24С256 быстро ?
 


Только записав постранично FF
Но зачем это может быть нужно?
Во имя Ctrl, Alt и святаго Del. Enter!
 
?? Tosha_443 #15.06.2004 18:28
+
-
edit
 

Tosha_443

втянувшийся
Lioxa, 15.06.2004 15:51:02 :
Resurrector, 15.06.2004 15:28:18 :
Lioxa, 15.06.2004 14:24:20 :
А как стереть 24С256 быстро ?
 


????!!!??????? :blink:
 


Ты имееш в виду хватит и електричество отключить ?
 


Насколько я понял даташит (поправьте, если не так) то у 24с256 нет операции стирания. из этой ситуации можно выйти, как минимум тремя вариантами:
1. держать переменные(данные) по конкретным адресам и так с ними и работать.
2. организовать "очередь" в первом байте хранить адрес конца очереди и, соответственно писать по этому адресу с инкрементом.
3.забивать все нулями/единицами и проверять перед записью.
недостатки:
п.1 - не организуешь список переменной длины и неоптимально используется ресурс микросхемы.
п.2 - то же самое для первого байта(ресурс)
п.3 - ресурс уменьшается в 2 раза. а если попадется байт 0xFF или 0x00 ?
Не ошибается тот, кто ничего не делает  
+
-
edit
 

-=ELF=-
-ELF-

новичок
darker, 15.06.2004 08:47:02 :
Разряд DDRx - определяет направление передачи данных (0 - вход, 1 - выход).
Разряд PORTx - если вывод определен выходом (DDRx = 1), то:
если установлена 1 - то на выводе устанавливается лог. 1
если установлена 0 - то на выводе устанавливается лог. 0
если вывод определен входом (DDRx = 0), то PORTx - определяет состояние подтягивающего резистора (при PORTx = 1 резистор подключен)
Разряд PINx - доступен только для чтения и содержит физическое значение вывода порта.
 


это я издаташита понял.
я в замешательстве:
если DDRB = 00000011(в бинарном виде)
а мне надо вывести число на 1ю ногу порта B, то мне надо сохранить во временной переменной значение DDRB, после чего в DDRB записать 00000010, а после вывода данных вернуть из временной переменной значение в DDRB ?
А если я не изменю значение 00000011 на 00000010 - то я буду иметь одинаковые данные на обоих регистрах порта ?

вариант ли организовать примерно такое для работы с ножками по отдельности :?
NOGA0 примет DDRB=0x01(00000001)
NOGA1 примет DDRB=0x02(00000010)
после чего поток направлять в переменные NOGA0 или NOGA1, т.е
NOGA0 << переменная_X
 
+
-
edit
 

trainer

втянувшийся

[quote|-=ELF=-, 16.06.2004 00:36:56 :]
darker, 15.06.2004 08:47:02 :
я в замешательстве:
если DDRB = 00000011(в бинарном виде)
а мне надо вывести число на 1ю ногу порта B, то мне надо сохранить во временной переменной значение DDRB, после чего в DDRB записать 00000010, а после вывода данных вернуть из временной переменной значение в DDRB ?
 


DDRx определяет только включение различных частей порта. Выводить надо в PORTx. Кроме того, можно управлять каждым выводом порта в отдельности.
Во имя Ctrl, Alt и святаго Del. Enter!
 
?? Tosha_443 #16.06.2004 10:00
+
-
edit
 

Tosha_443

втянувшийся
-=ELF=-, 16.06.2004 00:36:56 :
это я издаташита понял.
я в замешательстве:
если DDRB = 00000011(в бинарном виде)
а мне надо вывести число на 1ю ногу порта B, то мне надо сохранить во временной переменной значение DDRB, после чего в DDRB записать 00000010, а после вывода данных вернуть из временной переменной значение в DDRB ?
А если я не изменю значение 00000011 на 00000010 - то я буду иметь одинаковые данные на обоих регистрах порта ?

вариант ли организовать примерно такое для работы с ножками по отдельности :?
NOGA0 примет DDRB=0x01(00000001)
NOGA1 примет DDRB=0x02(00000010)
после чего поток направлять в переменные NOGA0 или NOGA1, т.е
NOGA0 << переменная_X
 


если DDRB=00000011 то нога 0 и 1 установлены на ВЫХОД и, поэтому не стоит для вывода на 1 ногу переопределять DDRB. просто выводишь нужную инфу в PORTB.1 а еще лучше, если не используешь двунаправленность портов, то сразу в начале проги определить, какие ноги на вход, какие на выход и занести это в соответствующий DDRx

А если я не изменю значение 00000011 на 00000010 - то я буду иметь одинаковые данные на обоих регистрах порта
не понятно. DDR - служит для определения направления порта, т.е. вход или выход. А PORT - регистр данных при DDRx = 1 в ноге порта и отвечает за Z состояние (DDRx=0 PORTx=0) или подтягивающий резистор при DDRx=0 PORTx=1. при этом состояние ВЫВОДОВ физических проверяется через PINx
Не ошибается тот, кто ничего не делает  
Это сообщение редактировалось 16.06.2004 в 14:10
RU termostat #16.06.2004 11:50
+
-
edit
 

svb

новичок
ZiLOGовский комплект пришел сегодня утром. Доставили FedEx ! ;)
Вот поковыряемся ! :)
 
+
-
edit
 

-=ELF=-
-ELF-

новичок
Tosha_443:

PORTB.1 это как раз то, про что я спрашивал в примере.
Спасибо.
 
?? Tosha_443 #17.06.2004 19:06
+
-
edit
 

Tosha_443

втянувшийся
Немного не в тему
подключил LCD 16х2 к компу - весчь !!!!!
http://www.modding.ru/lcd-nero.html
посмотрите, может кому понравится B)
Не ошибается тот, кто ничего не делает  

Yuran

опытный

Tosha_443, 17.06.2004 18:06:43 :
Немного не в тему
подключил LCD 16х2 к компу - весчь !!!!!
http://www.modding.ru/lcd-nero.html
посмотрите, может кому понравится B)
 


Гы. А зачем? ;)
 
+
-
edit
 

-=ELF=-
-ELF-

новичок
что то у меня ничего не выходит с PORTB.1, может кто напишет кусочек кода для использования PORTB.1 с ImageCraft.
 
AD Реклама Google — средство выживания форумов :)
?? Tosha_443 #18.06.2004 10:09
+
-
edit
 

Tosha_443

втянувшийся
Yuran, 17.06.2004 20:04:56 :
Tosha_443, 17.06.2004 18:06:43 :
Немного не в тему
подключил LCD 16х2 к компу - весчь !!!!!
http://www.modding.ru/lcd-nero.html
посмотрите, может кому понравится B)
 


Гы. А зачем? ;)
 


Ну взял я LCD для следующего проекта, а нынешний еще не закончил. чего ему лежать без дела-то? вот и прикрутил к ЛПТ... а вообще прикольно - к Apollo прикрутил-песни показывает(только английские). Лентяйка с гирдером-монитор выкл. и работает комп как муз. центр. :D
Не ошибается тот, кто ничего не делает  
1 2 3 4 5 6 7 12

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru