Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
17.09.2007, 17:27
|
|
Прохожий
Регистрация: 10.09.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Проблемы с ЖК в VmLab
Я студент,и тренируюсь в программировании микроконтроллеров,чтоб в будущем быть специалистом в этой области.
В качестве пособия я использовал серию статей С.Рюмика в журнале РА 1-7,2005.И решил по его указаниям в ступени 6(журнал Радиоаматор №6,2005) попробовать симуляцию в VmLab вывод простой фрази ЖК дисплей.Я прокомпилировал программу в WinAVR.Вставил за указанием автора в VmLab
X1 LCD(16 2 250k) PC0 PC1 PC2 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0.
Но при попытке билда,получаю ошибки:
Цитата:
|
* display.c, line 71: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'LCD'
* display.c, line 71: 12: error: invalid suffix "k" on integer constant.
|
Я пробовал через меню VmLab Components-LCD module.Шаблон описания ЖК получается такой же.
Текст программы
Код:
|
#include "io.h"
#define RS PC0
#define EN PC2
#define TIME 2
void pause(unsigned int a)
{
unsigned int cn;
for (cn=a; cn›0 ; cn--);
}
void lcd_com (unsigned char p)
{
PORTC&=~_BV(RS);
PORTC |=_BV(RS);
PORTD=p;
pause(TIME);
PORTC&=~_BV(EN);
pause(5+TIME);
}
void lcd_dat (unsigned char p)
{
PORTC|=_BV(RS) | _BV(EN);
PORTD=p;
pause(TIME);
PORTC&=~_BV(EN);
pause(5+TIME);
}
void lcd_init (void)
{
lcd_com(0x08);
lcd_com(0x38); pause(TIME+1000);
lcd_com(0x38);pause(TIME*20);
lcd_com(0x38);
lcd_com(0x38);
lcd_com(0x01);pause(TIME+1000);
lcd_com(0x06);
lcd_com(0x0D);
}
int main(void)
{
PORTB=DDRD=0xFF;
PORTC=0xF8;
DDRC=0x07;
lcd_init();
lcd_dat('H');
lcd_dat('e');
lcd_dat('l');
lcd_dat('l');
lcd_dat('o ');
lcd_dat('');
lcd_dat('d');
lcd_dat('u');
lcd_dat('d ');
lcd_dat('e');
} |
Возможно причина очевидна,извините,у меня пока еще недостаточно опыта работы.
__________________
Человека создает его сопротивление окружающей среде.
|
|
|
|
17.09.2007, 18:40
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Для начала неплохо бы выложить проект...
|
|
|
|
17.09.2007, 20:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Проблемы с ЖК в VmLab
Сообщение от Tessem
|
Я студент,и тренируюсь в программировании микроконтроллеров,чтоб в будущем быть специалистом в этой области.
В качестве пособия я использовал серию статей С.Рюмика в журнале РА 1-7,2005.И решил по его указаниям в ступени 6(журнал Радиоаматор №6,2005) попробовать симуляцию в VmLab вывод простой фрази ЖК дисплей.Я прокомпилировал программу в WinAVR.Вставил за указанием автора в VmLab
X1 LCD(16 2 250k) PC0 PC1 PC2 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0.
Но при попытке билда,получаю ошибки:
Цитата:
|
* display.c, line 71: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'LCD'
* display.c, line 71: 12: error: invalid suffix "k" on integer constant.
|
Я пробовал через меню VmLab Components-LCD module.Шаблон описания ЖК получается такой же.
|
Непонятно, Вы эту конструкцию вставляете в текст программы? Если так и есть, то ошибки правильные - ну откуда бедному GCC знать что такое X1 LCD... Я VmLab не использую, но предполагаю, что эту конструкцию нужно вставлять в файл проекта или конфигурационный файл, но никак не в исходный текст.
|
|
|
|
17.09.2007, 23:38
|
|
Прохожий
Регистрация: 10.09.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Загружаю все файлы проэкта в архив.
Насколько я знаю конфигурацию элементов вставляют в VmLab в конце программы.Компилятор WinAVR ошибок не обнаруживает,а эта строка суто для проэкта VmLab.
Прикрепленный файл: 7348995.rar
__________________
Человека создает его сопротивление окружающей среде.
|
|
|
|
17.09.2007, 23:55
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Строку
Код:
|
X1 LCD(16 2 250k) PC0 PC1 PC2 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 |
надо писать не в исходнике, а в файле проекта:
-- Прилагается рисунок: --
|
|
|
|
03.10.2007, 20:30
|
|
Прохожий
Регистрация: 03.10.2006
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Если тема еще актуальна, то небольшая подсказка. Надо скачать готовые файлы программ на Си и проекта VMLab в одном архиве Радiоаматора
http://www.ra-publish.com.ua/programs/avr6.zip
При запуске VMLab следует использовать одну из старых версий типа WinAVR20060421, поскольку с новым компилятором WinAVR20070525 задержки времени не так оптимизируются. Hello, word показывает в VMLab без проблем, проверено.
|
|
|
|
08.10.2007, 16:11
|
|
Прохожий
Регистрация: 10.09.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Спасибо,попробую.Hello выводило.Но когда я решил усовершенствовать программу таким образом,что на при нажатии кнопки на порте выводится фраза с ее номером,то получил непонятніе результаты.Какую я бы не ставил кнопку latched,mono и т.д. PIND остается 1 после нажатия и отпускания кнопки.
__________________
Человека создает его сопротивление окружающей среде.
|
|
|
|
08.10.2007, 16:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от Tessem
|
Какую я бы не ставил кнопку latched,mono и т.д. PIND остается 1 после нажатия и отпускания кнопки.
|
А что на ножке в осциллографе ?
Пример с кнопкам в VMLAB на стр. 3 есть о прерываниях в AVR - avr123.nm.ru/03.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
08.10.2007, 17:28
|
|
Прохожий
Регистрация: 10.09.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Я кажется понимаю в чем дело,но сейчас при мне нет vmlab.я для простоты кнопку соединял напрямую к порту и питанию,без резистора.Надо будет проверить способ у Вас в программе.
__________________
Человека создает его сопротивление окружающей среде.
|
|
|
|
08.10.2007, 17:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от Tessem
|
для простоты кнопку соединял напрямую к порту и питанию,без резистора.
|
На стр 2 курса http://avr123.nm.ru
Я советую повозможности подключаться к ножкам через резисторы 200 - 300 Ом. Это снизит вероятность их повреждения из-за ошибок.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
VMLAB: симуляция АЦП
|
VadimL |
Микроконтроллеры, АЦП, память и т.д |
5 |
12.02.2009 22:14 |
Работа в VMLAB.
|
sas12 |
Proteus, KiCAD и другие ECAD |
5 |
25.09.2008 19:28 |
VMlab vs Proteus
|
Myp_from_roboforum |
Proteus, KiCAD и другие ECAD |
5 |
01.03.2007 11:47 |
вопрос по VMLAB
|
dimonbest |
Proteus, KiCAD и другие ECAD |
3 |
07.10.2006 20:59 |
mega8535... vmlab
|
dret |
Микроконтроллеры, АЦП, память и т.д |
1 |
28.03.2005 21:29 |
Часовой пояс GMT +4, время: 16:09.
|
|