19.07.2009, 01:52
|
#651
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Сообщение от Segel06
|
Здраствуйте.
Подскажите пожалуйста, как лучше передать значение какой либо переменной от одного микроконтроллера другому.
Особенно интересует вопрос для случая когда приемник AtMega, а передатчик PIC.
|
Здравствуйте.
С помощью USART или SPI или I2C (TWI).
|
|
|
|
19.07.2009, 11:37
|
#652
|
Частый гость
Регистрация: 07.10.2006
Сообщений: 32
Сказал спасибо: 4
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Сообщение от TEHb
|
С помощью USART или SPI или I2C (TWI).
|
Спасибо
А если так:
приемник находится на расстоянии нескольких метров(15-20м) от передатчика.
|
|
|
|
19.07.2009, 15:39
|
#653
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Сообщение от Segel06
|
Спасибо
А если так:
приемник находится на расстоянии нескольких метров(15-20м) от передатчика.
|
Десятки и даже сотни метров не проблема для RS-232. Если нужно по радио - есть радиомодули с подключением по USART.
|
|
|
|
19.07.2009, 21:07
|
#654
|
Прописка
Регистрация: 29.03.2004
Адрес: Санкт-Петербург
Сообщений: 207
Сказал спасибо: 2
Сказали Спасибо 24 раз(а) в 23 сообщении(ях)
|
в асме
Код:
|
.CSEG
.ORG (FLASHEND-PAGESIZE+1)
SOFTWARE_ID:
.db "AVR_MHO", 0xFF ; |
В IAR
как тоже самое ("AVR_MHO", 0xFF ) прописать по адресу FLASHEND-PAGESIZE+1 в IAR , что то не могу найти
то есть кто знает , может примерчик привести для IAR ? что бы было потом легче читать посимвольно... без всяких асмовских вставок
кристалл до 256 к
|
|
|
|
20.07.2009, 13:56
|
#655
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Посмотрите пример в CodeVisionAvr и Proteus - когда-то написал для охранной сигнализации(передавать состояния 8 датчиков по 2-м провода), затем не потребовалось. В примере всего две кнопки для изменения состояния порта B, должно быть восемь.
Прикрепленный файл: 9594891.zip
|
|
|
|
25.07.2009, 22:54
|
#656
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Может кто подскажет из знатоков, как решить эту задачу:
Код:
|
void on_off_led(void)
{
bit next_day;
int time_dn, time_up, time_now, tmp;//чтобы каждый раз коррекция не вносила свою лепту
if (HH[0]==99) {light_off; return;} //если полярный день
if (HH[0]==66) {light_on; return;} //если полярная ночь
next_day=0;
time_up=(int)HH[0]*60 + MM[0];//время вкл
time_dn=(int)HH[1]*60 + MM[1];//время выкл
time_now=(int)hrs*60 + minits;//время сейчас
if (time_up›time_dn)//если время восхода больше времени захода, то значит заход на следующие сутки
{
next_day=1; //меняем местами время восхода и захода
tmp=time_up;
time_up=time_dn;
time_dn=tmp;
};
if (next_day==0)
{
if ((time_now›time_up) && (time_now‹time_dn)) {light_on;} else //если сейчас больше T восхода
// и сейчас больше чем время захода и заход не на следующие сутки, то потухнуть
{light_off;}; //иначе гореть
return;
}
if (next_day==1)
{
if ((time_now›time_up) && (time_now›time_dn)) {light_on;} else
{light_off;}; //иначе выключить
}
} |
ВСЕХ УВАЖАЕМЫХ ФОРУМЧАН, ПОЗДРАВЛЯЮ С ДНЕМ ФЛОТА! УСПЕХОВ ВАМ И ЗДОРОВЬЯ!
|
|
|
|
31.07.2009, 12:00
|
#657
|
Частый гость
Регистрация: 07.10.2006
Сообщений: 32
Сказал спасибо: 4
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Сообщение от IOPA4
|
Посмотрите пример в CodeVisionAvr и Proteus
|
Спасибо, разобрался.
Такой вопрос:
пытаюсь инициализировать LCD в 4-х битном интерфейсе, без использования стандартной библиотеки.
RS-0
E -1
D4-4
D5-5
D6-6
D7-7
Контакт R/W заземлен
Код:
|
delay_ms(2000);// Пауза 2 секунды.
PORTB=0b00110000;//D4=1, D5=1
delay_us(4100);
PORTB=0b00110000;//D4=1, D5=1
delay_us(100);
PORTB=0b00110000;//D4=1, D5=1
delay_us(200);
PORTB=0b00100000;//Установка 4-х битного интерфейса D5=1
PORTB=0b00100000;//Установка 4-х битного интерфейса, количества строк,D5=1
PORTB=0b10000000;//установка точек отображения символа D7=1
PORTB=0b00000000;//Дисплей выключен
PORTB=0b10000000;//D7=1
PORTB=0b00000000;
PORTB=0b00010000;//Дисплей включен D4=1
PORTB=0b00000000;
PORTB=0b01100000;// Установка параметров отображения информации D6=1 D5=1 |
подскажите, что не так?
|
|
|
|
31.07.2009, 20:13
|
#658
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,508 раз(а) в 956 сообщении(ях)
|
2Segel06 И все это время RS и E висят в нулях,
дисплей что волшебник - угадывать че вы там колбасите на шине данных. Тактироваться надо, батенька...
|
|
|
|
01.08.2009, 13:07
|
#659
|
Частый гость
Регистрация: 07.10.2006
Сообщений: 32
Сказал спасибо: 4
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Сообщение от Halex07
|
2Segel06 И все это время RS и E висят в нулях
|
Судя по мануалам RS должен быть 0, а после того как сделал E=1 ничего не изменилось...
Пробовал так же вводить дополнительные задержки после каждого изменения значения порта, не помогло.
Где то еще ошибка.
|
|
|
|
01.08.2009, 15:52
|
#660
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от Segel06
|
Судя по мануалам RS должен быть 0, а после того как сделал E=1 ничего не изменилось...
Пробовал так же вводить дополнительные задержки после каждого изменения значения порта, не помогло.
Где то еще ошибка.
|
А вы даташиты на ЖКИ читать пробовали?... там же всё подробненько разжовано...
И судя по мануалам RS=0 если записывает команду, и RS=1 если записываете данные. А E=1 это строб по которому собственно и происходит запись... чё не понятно?
Только паузу между посылками байтов в GRAM сделайте 100 микросек а не 40.
И зачем там задерки аж по 2 и 4 сек?
Код:
|
delay_ms(2000);// Пауза 2 секунды.
PORTB=0b00110000;//D4=1, D5=1
delay_us(4100);
PORTB=0b00110000;//D4=1, D5=1 |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:24.
|
|