Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 05.02.2014, 16:51  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

А почему бы не делать это последовательно, без ожиданий?

Настройте сначала вход, а уж потом запускайте АЦП.
Реклама:
omercury вне форума  
Непрочитано 05.02.2014, 17:11  
vgtmaster
Прописка
 
Регистрация: 28.04.2008
Сообщений: 134
Сказал спасибо: 7
Сказали Спасибо 18 раз(а) в 9 сообщении(ях)
vgtmaster на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от omercury Посмотреть сообщение
А почему бы не делать это последовательно, без ожиданий?

Настройте сначала вход, а уж потом запускайте АЦП.
Что только не делал, не чего не получается.
vgtmaster вне форума  
Непрочитано 05.02.2014, 18:01  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: CodeVisionAVR 2.60

Сообщение от vgtmaster Посмотреть сообщение
1. Зачем нужен цикл именно от 0 до 99? Это время (условно) вывода на индикацию значений АЦП0 по завершении цикла переходим в дугой цикл и выводим значения АЦП1 и так по кругу.
1. Вывод информации на дисплей у вас где?

2. Переменная adc_counter где и когда меняется?

3. Время 1 цикла (из 99) примерно сколько (в мкс)?

4. Время одного измерения АЦП какое (в мкс)?
Godzilla82 вне форума  
Непрочитано 05.02.2014, 19:17  
seanta
Частый гость
 
Регистрация: 24.03.2008
Сообщений: 38
Сказал спасибо: 4,145
Сказали Спасибо 39 раз(а) в 13 сообщении(ях)
seanta на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от Saadov Посмотреть сообщение
Я знаю только одно место где эта программа находится на лечении. 2.05.6 там последняя.
Буду очень признателен, если кто-нибудь положит ее мне на мыло ab12@list.ru
seanta вне форума  
Непрочитано 05.02.2014, 20:52  
vgtmaster
Прописка
 
Регистрация: 28.04.2008
Сообщений: 134
Сказал спасибо: 7
Сказали Спасибо 18 раз(а) в 9 сообщении(ях)
vgtmaster на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от Godzilla82 Посмотреть сообщение
1. Вывод информации на дисплей у вас где?

2. Переменная adc_counter где и когда меняется?

3. Время 1 цикла (из 99) примерно сколько (в мкс)?

4. Время одного измерения АЦП какое (в мкс)?
1. Вывод информации на дисплей у вас где? обычный семисегментный индикатор.

2. Переменная adc_counter где и когда меняется?
// Прерывание по окончанию преобразования АЦП
ISR (ADC_vect)
{
value = value + (ADC*11/4);
adc_counter++;
}


3. Время 1 цикла (из 99) примерно сколько (в мкс)?

Это время условное, в дальнейшем будет 2 - 3сек. То есть 3сек выводим на дисплей результат АЦП0, далее 3сек АЦП1 и так по переменно. Так вот, по переменно у меня не получается сделать. И я прошу помощи, кто мог бы помочь мне решить данную проблему.

4. Время одного измерения АЦП какое (в мкс)? Я думаю это непринципиально.
vgtmaster вне форума  
Непрочитано 05.02.2014, 21:33  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: CodeVisionAVR 2.60

1. Переменная adc_counter объявлена как volatile?
2. Перед установками параметров АЦП его надо выключать.
3. После установки всех настроек - включить.
4. И только после этого - запустить.
5. На момент сравнения переменной adc_counter прерывания надо запрещать, так как переменная двухбайтовая. Какой у неё тип, кстати?
6. В начале цикла value и adc_counter надо обнулять. На этот момент прерывания тоже надо запретить.
7. Какой тип имеет переменная value?
8. Выбора канала 2 надо делать не логическим "ИЛИ" с предыдущим значением регистра ADMUX.

Чем вам не нравится мой вариант?
Что такое ADC в прерывании?

P.S. А как на дисплее отличить 1 канал от 2-го? Никак?

Последний раз редактировалось Godzilla82; 05.02.2014 в 21:49.
Godzilla82 вне форума  
Непрочитано 06.02.2014, 00:53  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: CodeVisionAVR 2.60

Если уж хотите через прерывания, тогда предлагаю так:

Код:
#include ‹mega16.h›
#include ‹delay.h›

#define ADC_VREF_TYPE           (1 ‹‹ REFS1 ) | (1 ‹‹ REFS0)

unsigned char      adc_counter = 0;
unsigned int       value       = 0;
unsigned int       display     = 0;

...

interrupt [ADC_INT] void adc_isr(void)
{
value += ADCW;
adc_counter++;
if(adc_counter›63)  {
                    display = ((unsigned long int)value*11)››8;
                    adc_counter = 0;
                    value = 0;
                    }
}

void start_ch(unsigned char ch)
{
#asm("cli");
adc_counter = 0;
value = 0;
ADCSRA  &= ~(1 ‹‹ ADEN); 
ADMUX   = ADC_VREF_TYPE | ch;
ADCSRA  |= (1‹‹ADIF) | (1‹‹ADEN) | (1‹‹ADSC);
#asm("sei");
delay_ms(5000);
}

void init_adc(void)
{
ADMUX  =  ADC_VREF_TYPE;
ADCSRA = (1‹‹ADEN) | (1‹‹ADATE) | (1‹‹ADIE) | (1‹‹ADPS2) | (1‹‹ADPS1);
SFIOR  &= 0x1F;
}

void main(void)
{
init_adc();
begin:
start_ch(0);
start_ch(1);
goto begin;
}

Последний раз редактировалось Godzilla82; 06.02.2014 в 10:48.
Godzilla82 вне форума  
Непрочитано 06.02.2014, 09:49  
vgtmaster
Прописка
 
Регистрация: 28.04.2008
Сообщений: 134
Сказал спасибо: 7
Сказали Спасибо 18 раз(а) в 9 сообщении(ях)
vgtmaster на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Сообщение от Godzilla82 Посмотреть сообщение
1. Переменная adc_counter объявлена как volatile?
2. Перед установками параметров АЦП его надо выключать.
3. После установки всех настроек - включить.
4. И только после этого - запустить.
5. На момент сравнения переменной adc_counter прерывания надо запрещать, так как переменная двухбайтовая. Какой у неё тип, кстати?
6. В начале цикла value и adc_counter надо обнулять. На этот момент прерывания тоже надо запретить.
7. Какой тип имеет переменная value?
8. Выбора канала 2 надо делать не логическим "ИЛИ" с предыдущим значением регистра ADMUX.

Чем вам не нравится мой вариант?
Что такое ADC в прерывании?

P.S. А как на дисплее отличить 1 канал от 2-го? Никак?
Переменные объявлены так:
volatile unsigned long value;
volatile unsigned int adc_counter;

Чем вам не нравится мой вариант? Уважаемый Godzilla82 буду пробовать ваш вариант и прислушаюсь вашим советам, спасибо.
Что такое ADC в прерывании? Вектор прерывание по окончанию преобразования АЦП
vgtmaster вне форума  
Непрочитано 17.02.2014, 20:21  
Loghir
Прохожий
 
Регистрация: 04.09.2012
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Loghir на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Привет.
Как получить hex-файл в CodeVisionAVR 1.25.9?
Если кто может, поделитесь плз, версией 2.60 + таблетка...
Loghir вне форума  
Непрочитано 18.02.2014, 09:21  
foxii
Частый гость
 
Регистрация: 05.02.2014
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
foxii на пути к лучшему
По умолчанию Re: CodeVisionAVR 2.60

Подскажите, как подключить файл ресурса (например file.c) без использования заголовочного файла *.h, в проект в CodeVisionAVR V2.05.3. Работал в CodeVision 1.25.5 там просто добавил в проект файл си и объявил его в главном файле и всё. А CodeVisionAVR V2.05.3 ругается.
foxii вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CodeVisionAVR selevo Embedd С 11 26.02.2016 22:16
SD и CodeVisionAvr 2.04.4a sersne Микроконтроллеры, АЦП, память и т.д 29 24.03.2010 18:39
CodeVisionAVR V2.03.2 dimonbest Микроконтроллеры, АЦП, память и т.д 253 29.09.2009 22:37
New CodeVisionAVR 1.25.8 dimonbest Микроконтроллеры, АЦП, память и т.д 15 07.02.2008 12:56
Help CodeVisionAVR Serg79 Микроконтроллеры, АЦП, память и т.д 3 15.12.2005 23:32


Часовой пояс GMT +4, время: 19:36.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot