Страница 15 из 628
Добавлено: Вс окт 07, 2007 14:33:13
gonzales06
Здраствуйте, так на ЖК ни чего не вывел.
Подсоединил к порту В (вместе со светодиодами)
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-х строках, меня контрастность результат тод же
Включал и выключал порт В, не помогло, менял частоту, сами мк заменял, не получается.
Добавлено: Вс окт 07, 2007 14:59:12
Piroman17
О, да я с этим сталкивался! У тебя провода к ЖК не перепутаны, между собой не контачат??? Всё дело в качестве сборки!
Добавлено: Вс окт 07, 2007 15:05:08
moLCHec
gonzales06
Включи мозг
PORTB=0x00;
DDRB=0x00;
это что такое, порт на вход настроил с чего на нём пины дёргаться будут.
говорил же
DDRB=0xff;
Добавлено: Вс окт 07, 2007 15:38:04
gonzales06
Да я менял DDRB на 0xff. не помогло, заново перепоял проводки, все правильно. Не знаю что и делать
Добавлено: Вс окт 07, 2007 15:52:05
Piroman17
попробуй после lcd_init(12); сделать неболшую паузу, ну типа delay_ms(100); может LCD не успевает за контроллером.

Добавлено: Вс окт 07, 2007 15:53:47
tych
moLCHec писал(а):
PORTB=0x00;
DDRB=0x00; это что такое,
порт на вход настроил с чего на нём пины дёргаться будут.
C того что lcd_init(12); настраивает пины как надо.
moLCHec писал(а):Включи мозг
Включите вы для примера.
Добавлено: Вс окт 07, 2007 16:49:40
gonzales06
Ура!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Получилось.
Почему не знаю, просто перетаркивал питание, пошел покурить встаил и все заработало всем спасибо большое за помощь и поддержку, буду далее продолжать проект по тахометру.
Добавлено: Вс окт 07, 2007 17:11:58
tych
с CVAVR обычно всё работает при правильном монтаже и исправных компонентах.
Хоть заработало но проверь еще раз все соединения, пайку. А то так же неожидано потухнек как нибудь после перекура.
Добавлено: Вс окт 07, 2007 17:27:41
Пожиратель AVR
Есть такая проблема при компиляцыи в 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 =
немогу понять почему он выдает такую ощибку хотя я все правильно написал ?
Добавлено: Вс окт 07, 2007 17:32:17
moLCHec
tych
Во первых что там в инициализации делается не видно, в нормальных библиотеках для обеспечения совместимости порт настраивают отдельно от библиотечных функций.
Во вторых если человек пишет такое не зная что там в инициализации то это явно выказывает непонимание того что он делает, а если ему и ведомо что порт в функции на выход устанавливается то это ещё более наводит на мысль о непонимании своих действи и их последствий.
ВОТ.
Эсли доводы не убедительны и хочется попарировать, пожалуста в личку и асю.
Добавлено: Вс окт 07, 2007 17:44:03
tych
moLCHec писал(а):tych
Во первых что там в инициализации делается не видно.
Вы в таких случаях говорите - включите мозги !
Я так не говорю, а просто сообщаю что
ВСЁ видно в АСМ листинге. При этом АСМ привязан к коду на Си - так что всё предельно ясно туму кто интересуется.
moLCHec писал(а): Во вторых если человек пишет такое не зная что там в инициализации то это явно выказывает непонимание того что он делает
Вот он и учится что бы понимать. И правильно делает что не стесняется спросить.
А вы два раза ему чушь советовали тоже не зная что делает его компилятор. Т.е. делали именно вот это:
moLCHec писал(а): если человек пишет такое не зная что там в инициализации то это явно выказывает непонимание того что он делает
Причем второй раз советовали эту чушь уже ПОСЛЕ того как я написал что CVAVR сам настраивает выводы для LCD.
И указал конкретную папку компилятора с примером кода !
Добавлено: Вс окт 07, 2007 18:36:23
Пожиратель AVR
Что неуково таких ошибок компилятор невыдавал чтоли?
Добавлено: Вс окт 07, 2007 19:20:17
tych
Пожиратель AVR писал(а):Что неуково таких ошибок компилятор невыдавал чтоли?
Если резюмировать эту аглицкую абру-кадабру то возможно получится что-то типа "используйте CVAVR"

- всего 2.2 Мб "весом".
Добавлено: Пн окт 08, 2007 15:01:01
gonzales06
Не могау понять в чем ошибка фунуции: 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 на ЖК, в десятичной форме.
Добавлено: Пн окт 08, 2007 15:38:37
tych
gonzales06 писал(а):Не могау понять в чем ошибка фунуции: string.h
CVAVR выдает ошибку (L46:undefined symbol 'sprintf')
Советую прочитать книги по Си или хотя бы курс стр.5 под "www" - "Си для МК" - структура программы на Си в CVAVR.
У вас не хватает заголовочного файла
и существующие написаны почему то без .h
На первой стр. курса написано как найти в папке CVAVR (или любой другой) то что относится к интересующему вас - в данном случает это слово
sprintf - найдите и первый результат посика это то что вам нужно.
Не читая вы врядли научитесь ИМХО.
Добавлено: Пн окт 08, 2007 16:20:40
gonzales06
void main(void)
{
Temp=0;
Temp++;
sprintf(buffer, "%3d",Temp);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(buffer);
delay_ms(1000);
// LCD module initialization
lcd_init(12);
}
А вот так работает.
Добавлено: Пн окт 08, 2007 16:28:14
gonzales06
Спасибо с прогой разобрался а вот памяти по нее не хватило у тини 2313

Добавлено: Пн окт 08, 2007 16:50:34
tych
По тому как sprintf много потребляет. Выводите способами описаными в задаче 5 курса без sprintf и printf
Добавлено: Пн окт 08, 2007 18:53:42
moLCHec
УЖ не знаю что там у tych, но я всегда в таких случаях делаю так
itoa(*buf, int value, int base);
где *buf буффер
value переменная
base модуль счёта, в твоём случае 10
Если переменая беззнаковая то можно менее прожорливую
utoa(*buf, int value, int base);
для уменшения кода также рекомендую по возможности снизить номенклатуру функций.
Добавлено: Пн окт 15, 2007 21:51:38
gonzales06
Купил, 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