CodeVision AVR в вопросах и ответах
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
ребят,кто может сказать в какой программе написанно это: http://www.getchip.net/posts/059-isprav ... it-doctor/
?я просто кроме cva ни че ни знаю но собрать оч надо!может кто поможет?)
?я просто кроме cva ни че ни знаю но собрать оч надо!может кто поможет?)
Re: CodeVision AVR в вопросах и ответах
там в конце статьи есть файл *.HEX, он откроется любой программой. Откройте его и прошейте! Или нужно посмотреть исходник?
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
*Trigger* писал(а):Или нужно посмотреть исходник?
если не сложно)
-
FredyInKR
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Ср мар 25, 2009 22:05:46
- Откуда: Kirovohrad -> Ukraine
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Добрый день.
Динамическую индикацию сделал по прерыванию таймера без особых затруднений все хорошо работает... Далее пытаюсь сам разобраться с 1wire... Все статьи перечитал, но немогу понять где у меня клин. То ли компилятор, то ли протеус.
Для проверки, просто написал небольшую программу которая определяет датчик и зажигает светодиоды. Подключил виртуальный осциллограф в Протеусе на 1wire. у меня короткий импульс который должен определить наличие датчика... Но он не определяет.
Я 4часа просидел с этой ерундой. Не могу найти причину... Подскажите где, я "туплю"???
Проверил, если отключить таймер и прерывания результат тоже 0 на шине 1wire. Хотя протеус работает нормально. Порт настроен верно. Далее пытаюсь найти косяк в самом code vision. Может и правда, что-то с компилятором не так???
Опрашиваю 1wire через таймер с задержкой... (не знаю, че-то рисунок не прилепился...)
Вот какие у меня импульсы...

Динамическую индикацию сделал по прерыванию таймера без особых затруднений все хорошо работает... Далее пытаюсь сам разобраться с 1wire... Все статьи перечитал, но немогу понять где у меня клин. То ли компилятор, то ли протеус.
Для проверки, просто написал небольшую программу которая определяет датчик и зажигает светодиоды. Подключил виртуальный осциллограф в Протеусе на 1wire. у меня короткий импульс который должен определить наличие датчика... Но он не определяет.
Код: Выделить всё
#include <tiny13.h>
#include <delay.h>
#asm
.equ __w1_port=0x18 ;PORTB
.equ __w1_bit=5
#endasm
#include <1wire.h>
#include <ds18b20.h>
unsigned char devices; //храню тут найденные устройства 1wire
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
if(devices>0){PORTB=0b000111;} else
if(devices<=0){PORTB=0b000101;}
}
void main(void)
{
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
PORTB=0x00;
DDRB=0xFF;
// Clock value: 18,750 kHz
TCCR0A=0x00;
TCCR0B=0x04;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
GIMSK=0x00;
MCUCR=0x00;
TIMSK0=0x04;
ACSR=0x80;
ADCSRB=0x00;
#asm("sei") //глобальные прерывания
while (1)
{
#asm("cli"); //выкл. прерывания
devices=w1_init(); //ищу датчик...
delay_ms(50); //далее задержка
#asm("sei"); //включаю прерывания
};
}
Проверил, если отключить таймер и прерывания результат тоже 0 на шине 1wire. Хотя протеус работает нормально. Порт настроен верно. Далее пытаюсь найти косяк в самом code vision. Может и правда, что-то с компилятором не так???
Опрашиваю 1wire через таймер с задержкой... (не знаю, че-то рисунок не прилепился...)
Вот какие у меня импульсы...

Последний раз редактировалось FredyInKR Вт мар 01, 2011 13:25:36, всего редактировалось 2 раза.
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
купите книгу по cvavr . я вчера в озоне купил очень рад!
-
FredyInKR
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Ср мар 25, 2009 22:05:46
- Откуда: Kirovohrad -> Ukraine
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Хороший совет
Книга у меня есть, но проблема этим не решится.
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: CodeVision AVR в вопросах и ответах
... косяк, скорее всего, в логике работы программы - w1_init(); //ищу датчик... возвращает 1-есть ответ, 0- нет.В чем проблема и зачем вы "долбите" прерываниями??? В папке examples есть готовые примеры. Подставьте в Протеус код оттуда - все должно работать.FredyInKR писал(а):Далее пытаюсь найти косяк в самом code vision. Может и правда, что-то с компилятором не так???
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
страница 283 .
-
FredyInKR
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Ср мар 25, 2009 22:05:46
- Откуда: Kirovohrad -> Ukraine
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
ChipKiller писал(а):В чем проблема и зачем вы "долбите" прерываниями??? В папке examples есть готовые примеры. Подставьте в Протеус код оттуда - все должно работать.
Долблю потому, что в другой программе должны будут использоваться прерывания.... Это я так для примера. Тут задача стоит не в оптимизации программы, а том, чтобы найти подключенный датчик... Считать с него то я уже разберусь. Ступор у меня то на этом шаге?...
Re: CodeVision AVR в вопросах и ответах
FredyInKR
Вообще-то, РВ5 у ATtiny13 - RESET.
Вообще-то, РВ5 у ATtiny13 - RESET.
-
FredyInKR
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Ср мар 25, 2009 22:05:46
- Откуда: Kirovohrad -> Ukraine
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Ну и что? Я же не собираюсь прошивать тини13 в реале. И на 4порту и 3-м вешал... Результат девайсов = 0.
...
странно... Хотя процесс 1w_read и 1w_write возвращают = 1. т.е. запись/чтение успешны.
...
странно... Хотя процесс 1w_read и 1w_write возвращают = 1. т.е. запись/чтение успешны.
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: CodeVision AVR в вопросах и ответах
.. про оптимизацию не говорил ни слова, просто советую Вам отключить в программе все "лишние примочки", которые не относятся в данный момент к работе датчика.FredyInKR писал(а):Тут задача стоит не в оптимизации программы, а том, чтобы найти подключенный датчик...
... так что проблема не в компиляторе.....FredyInKR писал(а):странно... Хотя процесс 1w_read и 1w_write возвращают = 1. т.е. запись/чтение успешны.
-
FredyInKR
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Ср мар 25, 2009 22:05:46
- Откуда: Kirovohrad -> Ukraine
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Все лишнее выключил, я же говорю, что все равно 0. Протеус вроде нормально работает, я скачивал готовые проекты с использованием 1wire все отображается.
кому не трудно, посмотрите пожалуйста архив с проектом код вижена и протеуса?!...
кому не трудно, посмотрите пожалуйста архив с проектом код вижена и протеуса?!...
- Ardarik
- Вымогатель припоя
- Сообщения: 671
- Зарегистрирован: Пн май 18, 2009 16:26:10
- Откуда: Саранск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
как hex добавить в проект чет ни как не найду
Хватит жить как получается- надо жить как хочется
-
FredyInKR
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Ср мар 25, 2009 22:05:46
- Откуда: Kirovohrad -> Ukraine
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
2 клика на МК в Протеусе далее строка в свойствах Program file: открыть и поехали.
Re: CodeVision AVR в вопросах и ответах
В протеусе, в свойствах МК, поставьте частоту такую же, как в исходном тексте - 4.8 MHz. А CKDIV8 в "1". Всё работает.FredyInKR писал(а):посмотрите пожалуйста архив с проектом код вижена и протеуса?!...
Последний раз редактировалось ValBag Ср мар 02, 2011 15:07:22, всего редактировалось 1 раз.
-
FredyInKR
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Ср мар 25, 2009 22:05:46
- Откуда: Kirovohrad -> Ukraine
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Спасибо огромное!
Туплю на ровном месте =))))
Re: CodeVision AVR в вопросах и ответах
помогите пожалуйста с 74hc595!
написал такой код:
а протэус выдает на экране бред
подскажите, что я делаю не так
написал такой код:
Код: Выделить всё
#define DATA 2
#define CLK 1
#define STROBE 0
#define DATA_H PORTB|=1<<DATA
#define DATA_L PORTB&=~(1<<DATA)
#define CLK_H PORTB|=1<<CLK
#define CLK_L PORTB&=~(1<<CLK)
#define STROBE_H PORTB|=1<<STROBE
#define STROBE_L PORTB&=~(1<<STROBE)
void hc595(unsigned char tmp)
{
unsigned char i=0;
DDRB|=(1<<DATA)|(1<<CLK)|(1<<STROBE);
for(i=8;i;i--)
{
if(tmp&0x80) {DATA_H;}
else {DATA_L;};
CLK_H;
tmp<<=1;
CLK_L;
};
STROBE_H;
STROBE_L;
hc595(11111111);
}а протэус выдает на экране бред
подскажите, что я делаю не так
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: CodeVision AVR в вопросах и ответах
... вызов hc595(11111111); должен происходить в main, а не внутри определения самой hc595(){....}Thauris писал(а):подскажите, что я делаю не так
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
ChipKiller писал(а):... вызов hc595(11111111); должен происходить в main, а не внутри определения самой hc595(){....}Thauris писал(а):подскажите, что я делаю не так
да и хрен бы с ним, с вызовом - пока стек не переполнится, что-то все же успеет вывестись в регистр... а вот пытаться выдать число больше 11 миллионов этой функцией - чистый бред.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!