Мелкие вопросы по МК и ПЛИС.
- gonzales06
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Сб сен 01, 2007 18:32:42
- Откуда: Санкт-Петербург
- Контактная информация:
Здраствуйте, так на ЖК ни чего не вывел.
Подсоединил к порту В (вместе со светодиодами)
PB0-4pinLcd
PB1-5
PB2-6
3----
4-11
5-12
6-13
7-14
Открыл в CVAVR:
- Wizard:
- установил Chip ATTiny 2313V 10.0MGh
-LCD 12 port B
-сгенерировал проект
На Си программа такая:
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.7a Evaluation
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 07.10.2007
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATtiny2313V
Clock frequency : 10,000000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
*****************************************************/
#include <tiny2313>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd>
// Declare your global variables here
void main(void)
{
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// LCD module initialization
lcd_init(12);
lcd_gotoxy(0,0);
lcd_putsf("1235");
while (1)
{
// Place your code here
};
}
Проошил:
загорелись 4-диода (при включении минают)
На ЖК высвечиваются квадраты в 2-х строках, меня контрастность результат тод же
Включал и выключал порт В, не помогло, менял частоту, сами мк заменял, не получается.
Подсоединил к порту В (вместе со светодиодами)
PB0-4pinLcd
PB1-5
PB2-6
3----
4-11
5-12
6-13
7-14
Открыл в CVAVR:
- Wizard:
- установил Chip ATTiny 2313V 10.0MGh
-LCD 12 port B
-сгенерировал проект
На Си программа такая:
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.7a Evaluation
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 07.10.2007
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATtiny2313V
Clock frequency : 10,000000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
*****************************************************/
#include <tiny2313>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd>
// Declare your global variables here
void main(void)
{
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// LCD module initialization
lcd_init(12);
lcd_gotoxy(0,0);
lcd_putsf("1235");
while (1)
{
// Place your code here
};
}
Проошил:
загорелись 4-диода (при включении минают)
На ЖК высвечиваются квадраты в 2-х строках, меня контрастность результат тод же
Включал и выключал порт В, не помогло, менял частоту, сами мк заменял, не получается.
- gonzales06
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Сб сен 01, 2007 18:32:42
- Откуда: Санкт-Петербург
- Контактная информация:
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
moLCHec писал(а):PORTB=0x00;
DDRB=0x00; это что такое,
порт на вход настроил с чего на нём пины дёргаться будут.
C того что lcd_init(12); настраивает пины как надо.
moLCHec писал(а):Включи мозг
Включите вы для примера.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- gonzales06
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Сб сен 01, 2007 18:32:42
- Откуда: Санкт-Петербург
- Контактная информация:
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
с CVAVR обычно всё работает при правильном монтаже и исправных компонентах.
Хоть заработало но проверь еще раз все соединения, пайку. А то так же неожидано потухнек как нибудь после перекура.
Хоть заработало но проверь еще раз все соединения, пайку. А то так же неожидано потухнек как нибудь после перекура.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- Пожиратель AVR
- Встал на лапы
- Сообщения: 117
- Зарегистрирован: Чт янв 11, 2007 12:14:33
- Контактная информация:
Есть такая проблема при компиляцыи в WINAVR вылазит вот такая ошибка :
-------- begin --------
avr-gcc (GCC) 4.1.2
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
make.exe: *** No rule to make target `SV1.elf', needed by `elf'. Stop.
> Process Exit Code: 2
Я сам вроде знаю что эта ошибка значит , что неправильно написал название в загаловке макфайла.
# Target file name (without extension).
TARGET = SV1
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
OBJDIR = .
# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c C:/Работы/SV1.c
# List C++ source files here. (C dependencies are automatically generated.)
CPPSRC =
немогу понять почему он выдает такую ощибку хотя я все правильно написал ?
-------- begin --------
avr-gcc (GCC) 4.1.2
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
make.exe: *** No rule to make target `SV1.elf', needed by `elf'. Stop.
> Process Exit Code: 2
Я сам вроде знаю что эта ошибка значит , что неправильно написал название в загаловке макфайла.
# Target file name (without extension).
TARGET = SV1
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
OBJDIR = .
# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c C:/Работы/SV1.c
# List C++ source files here. (C dependencies are automatically generated.)
CPPSRC =
немогу понять почему он выдает такую ощибку хотя я все правильно написал ?
- moLCHec
- Мявтор!
- Сообщения: 825
- Зарегистрирован: Вс дек 18, 2005 20:04:42
- Откуда: Свердловская обл.
- Контактная информация:
tych
Во первых что там в инициализации делается не видно, в нормальных библиотеках для обеспечения совместимости порт настраивают отдельно от библиотечных функций.
Во вторых если человек пишет такое не зная что там в инициализации то это явно выказывает непонимание того что он делает, а если ему и ведомо что порт в функции на выход устанавливается то это ещё более наводит на мысль о непонимании своих действи и их последствий.
ВОТ.
Эсли доводы не убедительны и хочется попарировать, пожалуста в личку и асю.
Во первых что там в инициализации делается не видно, в нормальных библиотеках для обеспечения совместимости порт настраивают отдельно от библиотечных функций.
Во вторых если человек пишет такое не зная что там в инициализации то это явно выказывает непонимание того что он делает, а если ему и ведомо что порт в функции на выход устанавливается то это ещё более наводит на мысль о непонимании своих действи и их последствий.
ВОТ.
Эсли доводы не убедительны и хочется попарировать, пожалуста в личку и асю.
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
moLCHec писал(а):tych
Во первых что там в инициализации делается не видно.
Вы в таких случаях говорите - включите мозги !
Я так не говорю, а просто сообщаю что
ВСЁ видно в АСМ листинге. При этом АСМ привязан к коду на Си - так что всё предельно ясно туму кто интересуется.
moLCHec писал(а): Во вторых если человек пишет такое не зная что там в инициализации то это явно выказывает непонимание того что он делает
Вот он и учится что бы понимать. И правильно делает что не стесняется спросить.
А вы два раза ему чушь советовали тоже не зная что делает его компилятор. Т.е. делали именно вот это:
moLCHec писал(а): если человек пишет такое не зная что там в инициализации то это явно выказывает непонимание того что он делает
Причем второй раз советовали эту чушь уже ПОСЛЕ того как я написал что CVAVR сам настраивает выводы для LCD.
И указал конкретную папку компилятора с примером кода !
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- Пожиратель AVR
- Встал на лапы
- Сообщения: 117
- Зарегистрирован: Чт янв 11, 2007 12:14:33
- Контактная информация:
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Пожиратель AVR писал(а):Что неуково таких ошибок компилятор невыдавал чтоли?
Если резюмировать эту аглицкую абру-кадабру то возможно получится что-то типа "используйте CVAVR"
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- gonzales06
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Сб сен 01, 2007 18:32:42
- Откуда: Санкт-Петербург
- Контактная информация:
Не могау понять в чем ошибка фунуции: string.h
При компиляции вот такой проги:
#include <tiny2313>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd>
#include <string>
#include <delay>
char buffer [64];
char Temp;
// Declare your global variables here
void main(void)
{
// LCD module initialization
lcd_init(12);
while (1)
{
Temp=0;
Temp++;
sprintf(buffer, "%3d",Temp);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(buffer);
delay_ms(1000);
};
}
CVAVR выдает ошибку (L46:undefined symbol 'sprintf')
Задача простая вывод значения переменной Temp на ЖК, в десятичной форме.
При компиляции вот такой проги:
#include <tiny2313>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd>
#include <string>
#include <delay>
char buffer [64];
char Temp;
// Declare your global variables here
void main(void)
{
// LCD module initialization
lcd_init(12);
while (1)
{
Temp=0;
Temp++;
sprintf(buffer, "%3d",Temp);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(buffer);
delay_ms(1000);
};
}
CVAVR выдает ошибку (L46:undefined symbol 'sprintf')
Задача простая вывод значения переменной Temp на ЖК, в десятичной форме.
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
gonzales06 писал(а):Не могау понять в чем ошибка фунуции: string.h
CVAVR выдает ошибку (L46:undefined symbol 'sprintf')
Советую прочитать книги по Си или хотя бы курс стр.5 под "www" - "Си для МК" - структура программы на Си в CVAVR.
У вас не хватает заголовочного файла
и существующие написаны почему то без .h
На первой стр. курса написано как найти в папке CVAVR (или любой другой) то что относится к интересующему вас - в данном случает это слово sprintf - найдите и первый результат посика это то что вам нужно.
Не читая вы врядли научитесь ИМХО.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- gonzales06
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Сб сен 01, 2007 18:32:42
- Откуда: Санкт-Петербург
- Контактная информация:
- gonzales06
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Сб сен 01, 2007 18:32:42
- Откуда: Санкт-Петербург
- Контактная информация:
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
По тому как sprintf много потребляет. Выводите способами описаными в задаче 5 курса без sprintf и printf
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- moLCHec
- Мявтор!
- Сообщения: 825
- Зарегистрирован: Вс дек 18, 2005 20:04:42
- Откуда: Свердловская обл.
- Контактная информация:
УЖ не знаю что там у tych, но я всегда в таких случаях делаю так
itoa(*buf, int value, int base);
где *buf буффер
value переменная
base модуль счёта, в твоём случае 10
Если переменая беззнаковая то можно менее прожорливую
utoa(*buf, int value, int base);
для уменшения кода также рекомендую по возможности снизить номенклатуру функций.
itoa(*buf, int value, int base);
где *buf буффер
value переменная
base модуль счёта, в твоём случае 10
Если переменая беззнаковая то можно менее прожорливую
utoa(*buf, int value, int base);
для уменшения кода также рекомендую по возможности снизить номенклатуру функций.
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
- gonzales06
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Сб сен 01, 2007 18:32:42
- Откуда: Санкт-Петербург
- Контактная информация:
Купил, Mega 8L, чтобы на все хватала памяти.
Возникла другая проблема, не прошивается.
Устройство, прошиваю с помощью 5-ти проводков, с Tiny, разобрался проблем не было.
С Mega 8L при попытки чтения, прошивки CVAVR пишит:
-Chip Signature mismatch
Red: Byte0=FFh Byte1=FFh Byte2=FFh
Must be:Byte0=1Eh Byte1=93h Byte2=07h
У меня устройство, работает от внешнего кварца на 8 МГц, прочитал что надо менять фьюзы, чтобы его подключить а конкретно я поставил галочку на SUT1=0
Возникла другая проблема, не прошивается.
Устройство, прошиваю с помощью 5-ти проводков, с Tiny, разобрался проблем не было.
С Mega 8L при попытки чтения, прошивки CVAVR пишит:
-Chip Signature mismatch
Red: Byte0=FFh Byte1=FFh Byte2=FFh
Must be:Byte0=1Eh Byte1=93h Byte2=07h
У меня устройство, работает от внешнего кварца на 8 МГц, прочитал что надо менять фьюзы, чтобы его подключить а конкретно я поставил галочку на SUT1=0