проблема с буфером

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

хочу щас добавить 6 вольтметров и закрыть в корпус ,будет супер прибор для работы с шим контроллерами)
у экрана при 50 перепрошиваниях сгорает 7 строка выбросить жалко ,а так ещё послужит)
из за 7 строки 2 текстовая строка без верхушки ,так что 1 текстовую заделать под частоту ,нижние в 2столбика 6 вольтметров
Реклама
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

ток с фьюзяшками помощь потребуется , так как обычно игры с кварцами кончаются плачевно у меня последний раз отказался от всего тактоватся( поэтому 8 мгц мне раньше хватало)
Реклама
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: проблема с буфером

Сообщение phanis »

формула будет правильной при кварце 16мгц).
При кварце 16 МГц будет занижать в двое с той же прошивкой..
Можете freq.cof и freq.hex файл скинуть, тот что уже работает нормально?
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

вобщем , для разных дисплеев , если что ,пиши,подправлю
ещёб добавить кгц сокращение когда всё в 5 разрядов забиты ,надо приставку какую то придумать
Вложения
freq.rar
(9.1 КБ) 138 скачиваний
freq.rar
(3.83 КБ) 135 скачиваний
Последний раз редактировалось CS16AMX Пт мар 18, 2011 17:45:17, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: проблема с буфером

Сообщение phanis »

И настройки в проекте такие же?
cvavr_set.rar
Или я что то не до понимаю, или одно из двух :shock:
Реклама
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

не 8 , а 4 мгц стоит остальное не трогал с установки проги
у тебя 2. какая то ,а надо 1..... они даже вместе на компе стоять могут,но принцип работы другой ,менее капризен первый, 2 версии компактней компилит
Реклама
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: проблема с буфером

Сообщение phanis »

не 8 , а 4 мгц стоит
Думаю объяснять не нужно почему в двое меньше считал
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

я и забыл что давно под 4 пишу :))) мой касяк)
если переделаем на 8 то получим ещё 2 разряда?)
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

#include <n3310lcd.c>


typedef unsigned char byte;
typedef unsigned long ulong;

flash byte txt[]="freq:";

byte ovf; //Счетчик переполнений таймера
byte i;
byte buff[17]; //Буфер LCD
ulong freq;

interrupt [TIM1_OVF] void tmr1_ovf() {
ovf++; //Считаем сколько было переполнений
}

void main(){
TCCR1A=0;
TCCR1B=0;
TIMSK=4;
ACSR=0x80;
LcdInit();
#asm("sei")
LcdClear();
while (1) {
ovf=0; //Обнуляем
TCNT1=0;
TCCR1B=7; //Включаем счетчик с внешним генератором, пин T1

delay_ms(999);
delay_us(239);

TCCR1B=0; //Выключаем счетчик
freq=ovf;
freq*=65536;
freq+=TCNT1;


i=14;//unsigned char lcd_buf[14];
while(i--)
{
lcd_buf=' ';// в место нолика пробел
if (freq) lcd_buf=freq%10+0x30; //если не равен нулю
freq/=10;

}
i=5;// 5 символов freq:
while(i--)
{
lcd_buf[i+1]=txt;// txt[]="freq:";


}

LcdString(1,5);
LcdUpdate();


}
}
эта под 8 и без деления,а моя на 4 без деления :beer: теперь понял)
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: проблема с буфером

Сообщение phanis »

если переделаем на 8 то получим ещё 2 разряда?)
Не совсем понял 8 чего , 2разряда где?
Я поэтому просил проверить на 1 ГЦ потому как он не мог бы их вывести.
Класс точности был 2 Гц , Теперь можно и 1 Гц (на 8 МГц в компиляторе и вреале). Пример было 1000 .. 1002 .. 1004 станет 1001 .. 1002 .. 1003
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

в компиляторе под 4 мгц моя версия давала 5 цифр,твоя 6 под 8мгц , тобиш я подгонял по макс и 1.2гц на обновку надо, тобиш 1 сек счёт , 0.2 на вывод информации
на железе я всегда ставлю 8 мгц забыл что у компилятора тоже есть
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

phanis писал(а):Подправил частоту умножать не нужно, в cvavr и протеусе выставлять одинаковую частоту проца
freq.rar
вот ета правильная почти ,только нехватает отчистки экрана ,если частота была 10004 то меряя 10 будет постоянно 10004
ставлю отчистку и посравнению с моей версией он выводит картинку со скоростю в 2 раза медленнее но разрядов больше
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: проблема с буфером

Сообщение phanis »

вот ета правильная почти ,только нехватает отчистки экрана ,если частота была 10004 то меряя 10 будет постоянно 10004
ставлю отчистку и посравнению с моей версией он выводит картинку со скоростю в 2 раза медленнее но разрядов больше
Это где проверялось в реале?
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

phanis писал(а):
Это где проверялось в реале?[/quote]
да , только что перезалил , без отчистки 1.5раза медленней моего варианта
и ещё ,тот отступ должен быть короче, у меня 1 пробелтам пол экрана в право смещает
надо такой :lcd_buf='';
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: проблема с буфером

Сообщение phanis »

Это уже дело вкуса, Выравнивание по левому или правому.
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

касяк в том что в реале , ты увидиш 256 кгц в виде |freq........25|, по моему варианту
|freq256.........|,
phanis
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский
Контактная информация:

Re: проблема с буфером

Сообщение phanis »

Ну и славненько что разобрались с темой проблема с буфером.

Добавлю файл
freq.c
Последний раз редактировалось phanis Пт мар 18, 2011 20:32:24, всего редактировалось 2 раза.
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

закрывать ещё рано) есть ещё вопросы по rc5 для телевизоров протокоолов валяется куча но в чём сложность !!!!! буфер не даёт информацию в основную программу, нету объявления её результата сейчас отрою, там задачка потруднее
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

сей пакет rc5 протокола , проблема с выводом буфера , отлучусь на 50 мин и продолжу учится с етим работать
Вложения
rc5.rar
(108.86 КБ) 136 скачиваний
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: проблема с буфером

Сообщение CS16AMX »

//Chip type : ATmega8
//AVR Core Clock frequency: 4.000000 MHz
#include <n3310lcd.c>
#include <mega8.h>
#include <stdio.h>

typedef unsigned char byte;
typedef unsigned int word;

byte evnt; //Счетчик событий
word pkv; //Тут зранятся принятые биты
bit start; //Первый бит

void keypress(byte toggle,byte address,byte command) {

//Здесь пишим код, для события

printf("KEY: %u,%u,%u\r",toggle,address,command);
}

void tmr_reset() {
TCCR0=0; //Выключаем счетчик
TCNT0=0; //Сбрасивые счетчик
evnt=0;
pkv=0;
}

interrupt [EXT_INT0] void ext_int0_isr(void) { //Внешнее прерывание
if (evnt==0) { //Первое событие
TCCR0=4; //Включаем счетчик 15,625КГц
start=PIND.2; //Записываем первый бит
}
if ((evnt&1)!=0&&TCNT0>18) evnt++;
if (evnt>0&&(evnt&1)==0) {
if (evnt==2) {
if (start!=PIND.2) tmr_reset(); //Если первый бит не равен второму, заканчиваем обработку
start=!start; //Инвертируем бит
}else{
pkv<<=1; //Сдвигаем на бит вправо
pkv|=PIND.2^start; //Сохраняем принятый бит
}
}
if (TCCR0!=0) { //Если счетчик не выключен
if (evnt==26) keypress((pkv>>11)&1,(pkv>>6)&31,pkv&63);
evnt++; //Инкриминируем событие
TCNT0=0; //Сбрысываем счетчик
}
}

interrupt [TIM0_OVF] void timer0_ovf_isr(void) {
tmr_reset(); //Если счетчик переполнен, выключаем и обнуляем его
}

void main(void) {
DDRD=0;
PORTD=4;
LcdInit();
LcdMode(2);

TIMSK=1; //Прерывание для Счетчика 1
//Разрешаем внешнее прерывание, на любое изменение
GICR=0x40;
MCUCR=0x01;
GIFR=0x40;
tmr_reset();
//Настраиваем UART 19200 бод 8 бит
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;
//Пишем в терминал
{sprintf (lcd_buf, "KEY: %u,%u,%u\r");
LcdString(1,6);
LcdUpdate();}
putsf("TEST PHILIPS RC5:\r");
//Разрешаем рерывания
#asm("sei")
}
что ненравится в этом,та то что он только передатчику высылает принятые числа, ставя экран получаем что посылка его обходит, бывает беру простой буфер ,так число его стоит на месте (
а прерываение асм недаёт коректно циклировать , может кто сталкивался с такими проблемами rc5 ,ведь видел как некоторые нагрузки включают ,на 7 сигментов выводят, но вот на 3310 опять касяк
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»