Страница 100 из 132
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 05, 2012 20:56:28
xkp
последние даже с фирменой надписью ATMEL
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Пн фев 13, 2012 10:53:04
Jack_A
junesongnow писал(а):... Gold Cheap файлы довольно сильно различаются. Так и должно быть? Или это косяк? Тогда где искать "грабли" ? ПЛИЗ ХЭЛП!!!
Я не знаю, кто такой Gold Cheap, но определенно, что при программировании и затем - верификации сравниваются только те участки памяти, которые в этой сессии были записаны. Если ведется просто считывание, считывается вся память. В не записанных в данной сессии ячейках обычно FF. Так что если отличающаяся от FF информация в обоих файлах совпадает, то все ОК.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Сб фев 18, 2012 14:10:49
Duk
Начинаю только изучать Мк и столкнулся с проблемой:пишу прошивку в CodeVision,но почему то не хватает размеров стека либо размеров памяти 2кб.Не могу понять что тогда можно всунуть в at90s2313,если уже минимального размера прошивка занимает много места.Прошу объяснить в чем дело и что можно сделать в данном случае.Код:
Код: Выделить всё
#include <90s2313.h>
#include <1wire.h>
#include <lcd.h>
#include <stdio.h>
#include <ds1820.h>
#asm
.equ __w1_port=0x18
.equ __w1_bit=0
#endasm
#asm
.equ __lcd_port=0x12;
#endasm
int temper;
unsigned char lcdBuff[5];
void main(void)
{
lcd_init(10);
if(w1_init())
{
while (1)
{
temper=ds1820_temperature_10(0);
sprintf(lcdBuff,"%d",temper);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(lcdBuff);
}
}
}
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Сб фев 18, 2012 14:45:09
Gudd-Head
Гы
Помнится, sprintf сожрала у меня больше 1 кбайта флэша на СиЛабе.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Сб фев 18, 2012 15:01:16
Duk
Gudd-Head писал(а):Гы
Помнится, sprintf сожрала у меня больше 1 кбайта флэша на СиЛабе.
На что ее можно заменить?
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Сб фев 18, 2012 15:23:43
IfoR
Ну, например:
Код: Выделить всё
if (temper<0) {lcdBuff[0] = '-'; temper=-temper;} else lcdBuff[0] = ' ';
lcdBuff[1] = temper/100 + '0';
lcdBuff[2] = (temper/10)%10 + '0';
lcdBuff[3] = temper%10 + '0';
lcdBuff[4] = 0;
А там можно ещё много чего своего придумать, а есть ещё itoa.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 12:20:31
Vatson4ik
Здравствуйте, уважаемые! Мне понадобилось написать, вроде как, несложную программку с использованием компаратора на 2313. Никак не получается. Для понимания его работы, пытаюсь сделать просто проверку бита ACO чтобы его значение показывал светодиод. ACO=1 светодиод не горит и наоборот. Программу пишу в CodeVision AVR.
#include <tiny2313.h>
PORTB=0xFF;
DDRB=0xFF;
PORTD=0x00;
DDRD=0x00;
ACSR=0x00;
while (1)
{
// Place your code here
PORTB.0=ACSR.5
}
никак у меня не реагирует светодиод на разницу напряжений.
Пробовал через прерывание. После одного цикла программы, он входил в прерывание и циклился там.
Помогите, пожалуйста. Ткните носом неразумного котенка)))

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 12:35:01
xkp
я конечно на СИ не понимаю.... но помоему сначала задается DDRx а только потом PORTx, хотя может это и не имеет значения. а вот касаемо компаратора, где у тебя задается режим компаратора?
молока то не нальеш пока не откроеш коробку с ним. так же и тут пока не задаш режим работы - работать не будет.
хотя может во всем этом я ошибаюсь.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 12:49:48
Vatson4ik
Порядок задания PORTx и DDRx я думаю не важен. Тем более такой порядок задал мас тер настройки. А режим компаратора задается в определение битов ACSR. Вернее не столько режим сколько его включение, отказ от прерываний(в данной ситуации) и Выбор источника опорного напряжения. Здесь, мне кажется все правильно(хоть и не уверен так как не работает).
Больше вызывает смущение строка "PORTB.0=ACSR.5" Может так в принципе нельзя....
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 12:55:35
xkp
если бы так было нельзя то мне кажется ругался бы компилятор. по крайней мере АВРСТУДИЯ ругается когда делаеш так как нельзя.
смотрим дальше: А режим компаратора задается в определение битов ACSR. Вернее не столько режим сколько его включение
а у тебя стоит ACSR=0x00
тоесть ты его не задал, а если и задал (например в буилдере можно задавать не текстом а в менюшках самого компилятора), то этой строкой ты его сбросил.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 13:09:45
Vatson4ik
Компаратор включается посредством задания логического 0 в 7 бит ACD.(Из книги Белова) Я и задаю ему 0, то есть включаю.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 13:26:18
xkp
попробуй задать ему 1
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 13:42:13
Vatson4ik
Выдержка из мастера начального кода
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
DIDR=0x00;
работы нет. Так как питание на компаратор не подается
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 13:55:01
xkp
и все таки мне кажется что что то где то еще не забито.
кстати вспмнил про белова... про его книжки. как то в гугле я что то искал и случайно наткнулся на его книжку, но у меня уже была такая книжка, и тем не менее я зашел на ссылочку и долго долго валялся на полу под столом от смеха.
что же я там увидел?
а там значит книжка его выложена, вся такая с подробнастями и коментами
вслед за ней выложены очепятки (опечатки) которые есть в ней
и в след за ними выложены как ты думаеш что? а там очепятки к очепяткам!
дальше не по теме. моя история из котожизни.
после того как отошел от смеха решил все таки посмотреть. и пришел к выводу, что бы что то собрать по книжке когда ни чего не понимаеш (на то время я таким являлся) то надо сначала собрать по книжке, потом по очепяткам, а потом еще раз по очепяткам. мне это показалось очень сложным и я забросил все книги, но потом понял, что эти очепятки сделаны не случайно! а сделали их для того что бы люди сами искали ошибки (учились) и запоминали где и что исправляют и что вследствии меняется после их исправлений. но учится надо как раз на ошибках других.
все это сказано к тому что и книжки делают ошибки.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 13:58:17
xkp
кстати, у тебя сам МК рабочий? попробуй что нито простенькое в него залить, типо мигание светодиода, или включение выключение его с PIN-а. не знаю получится ли и правильно ли будет. поменяй PORTB.0=ACSR.5 на PORTB.0=PIND.0 и попробуй позажигать светодиод.
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 14:10:45
Vatson4ik
Светодиодами моргал. И просто циклически и по условию нажатия кнопки. Что то с компаратором не понимаю... Поэтому и написал вопрос. Замучался в интернете искать)) Смотрел пример инициализации на
http://www.123avr.com/z10.htm. Задачу ставлю еще проще чем там. Все что то никак((
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 14:53:28
xkp
ну тогда я уже не знаю. скорее всего что то где то надо еще установить. подожди маленько. выходные все таки коты гуляют все... щас нагуляются придут и помогут))
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 15:07:42
Vatson4ik
Ну в любом случае, спасибо за помощь)) Подождем еще котов)
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 15:24:03
Duk
Какие способы минимизации памяти на 2313 существуют,чтобы не копить каждый байтик?
Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Добавлено: Вс фев 19, 2012 15:45:27
akl
Vatson4ik писал(а):пытаюсь сделать просто проверку бита ACO чтобы его значение показывал светодиод. ACO=1 светодиод не горит и наоборот. Программу пишу в CodeVision AVR.
#include <tiny2313.h>
PORTB=0xFF;************PORTB=0xFC
DDRB=0xFF;*************DDRB=0xFC
PORTD=0x00;
DDRD=0x00;
ACSR=0x00;
while (1)
{
// Place your code here
PORTB.0=ACSR.5;*******PORTB.2=ACSR.5
}
никак у меня не реагирует светодиод на разницу напряжений.
Попробуйте комментированные команды