CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

Re: CodeVision AVR в вопросах и ответах

Сообщение Сериг »

ребят,кто может сказать в какой программе написанно это: http://www.getchip.net/posts/059-isprav ... it-doctor/
?я просто кроме cva ни че ни знаю но собрать оч надо!может кто поможет?)
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: CodeVision AVR в вопросах и ответах

Сообщение *Trigger* »

там в конце статьи есть файл *.HEX, он откроется любой программой. Откройте его и прошейте! Или нужно посмотреть исходник?
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-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 в вопросах и ответах

Сообщение FredyInKR »

Добрый день.
Динамическую индикацию сделал по прерыванию таймера без особых затруднений все хорошо работает... Далее пытаюсь сам разобраться с 1wire... Все статьи перечитал, но немогу понять где у меня клин. То ли компилятор, то ли протеус.
Для проверки, просто написал небольшую программу которая определяет датчик и зажигает светодиоды. Подключил виртуальный осциллограф в Протеусе на 1wire. у меня короткий импульс который должен определить наличие датчика... Но он не определяет. :( Я 4часа просидел с этой ерундой. Не могу найти причину... Подскажите где, я "туплю"???

Код: Выделить всё

#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 в вопросах и ответах

Сообщение FredyInKR »

Хороший совет :) Книга у меня есть, но проблема этим не решится.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

FredyInKR писал(а):Далее пытаюсь найти косяк в самом code vision. Может и правда, что-то с компилятором не так???
... косяк, скорее всего, в логике работы программы - w1_init(); //ищу датчик... возвращает 1-есть ответ, 0- нет.В чем проблема и зачем вы "долбите" прерываниями??? В папке examples есть готовые примеры. Подставьте в Протеус код оттуда - все должно работать.
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

Re: CodeVision AVR в вопросах и ответах

Сообщение Сериг »

страница 283 .
FredyInKR
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср мар 25, 2009 22:05:46
Откуда: Kirovohrad -> Ukraine
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение FredyInKR »

ChipKiller писал(а):В чем проблема и зачем вы "долбите" прерываниями??? В папке examples есть готовые примеры. Подставьте в Протеус код оттуда - все должно работать.

Долблю потому, что в другой программе должны будут использоваться прерывания.... Это я так для примера. Тут задача стоит не в оптимизации программы, а том, чтобы найти подключенный датчик... Считать с него то я уже разберусь. Ступор у меня то на этом шаге?...
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: CodeVision AVR в вопросах и ответах

Сообщение ValBag »

FredyInKR
Вообще-то, РВ5 у ATtiny13 - RESET.
FredyInKR
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср мар 25, 2009 22:05:46
Откуда: Kirovohrad -> Ukraine
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение FredyInKR »

Ну и что? Я же не собираюсь прошивать тини13 в реале. И на 4порту и 3-м вешал... Результат девайсов = 0.
...
странно... Хотя процесс 1w_read и 1w_write возвращают = 1. т.е. запись/чтение успешны.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

FredyInKR писал(а):Тут задача стоит не в оптимизации программы, а том, чтобы найти подключенный датчик...
.. про оптимизацию не говорил ни слова, просто советую Вам отключить в программе все "лишние примочки", которые не относятся в данный момент к работе датчика.
FredyInKR писал(а):странно... Хотя процесс 1w_read и 1w_write возвращают = 1. т.е. запись/чтение успешны.
... так что проблема не в компиляторе.....
FredyInKR
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср мар 25, 2009 22:05:46
Откуда: Kirovohrad -> Ukraine
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение FredyInKR »

Все лишнее выключил, я же говорю, что все равно 0. Протеус вроде нормально работает, я скачивал готовые проекты с использованием 1wire все отображается.
кому не трудно, посмотрите пожалуйста архив с проектом код вижена и протеуса?!...
sheettiny.rar
(49.35 КБ) 180 скачиваний
Аватара пользователя
Ardarik
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Пн май 18, 2009 16:26:10
Откуда: Саранск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Ardarik »

как hex добавить в проект чет ни как не найду
Хватит жить как получается- надо жить как хочется
FredyInKR
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср мар 25, 2009 22:05:46
Откуда: Kirovohrad -> Ukraine
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение FredyInKR »

2 клика на МК в Протеусе далее строка в свойствах Program file: открыть и поехали.
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: CodeVision AVR в вопросах и ответах

Сообщение ValBag »

FredyInKR писал(а):посмотрите пожалуйста архив с проектом код вижена и протеуса?!...
В протеусе, в свойствах МК, поставьте частоту такую же, как в исходном тексте - 4.8 MHz. А CKDIV8 в "1". Всё работает.
Последний раз редактировалось ValBag Ср мар 02, 2011 15:07:22, всего редактировалось 1 раз.
FredyInKR
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср мар 25, 2009 22:05:46
Откуда: Kirovohrad -> Ukraine
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение FredyInKR »

Спасибо огромное! :)) Туплю на ровном месте =))))
Thauris
Родился
Сообщения: 13
Зарегистрирован: Пн ноя 22, 2010 20:46:16

Re: CodeVision AVR в вопросах и ответах

Сообщение Thauris »

помогите пожалуйста с 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 в вопросах и ответах

Сообщение ChipKiller »

Thauris писал(а):подскажите, что я делаю не так
... вызов hc595(11111111); должен происходить в main, а не внутри определения самой hc595(){....}
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

ChipKiller писал(а):
Thauris писал(а):подскажите, что я делаю не так
... вызов hc595(11111111); должен происходить в main, а не внутри определения самой hc595(){....}

да и хрен бы с ним, с вызовом - пока стек не переполнится, что-то все же успеет вывестись в регистр... а вот пытаться выдать число больше 11 миллионов этой функцией - чистый бред.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «AVR»