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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Помогите с atmega8

Непрочитано 25.08.2010, 16:29  
igonzo
Частый гость
 
Аватар для igonzo
 
Регистрация: 03.03.2009
Сообщений: 34
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
igonzo на пути к лучшему
Печаль Помогите с atmega8

помогите разобратся (или в какую сторону копать) .
Измерение и вывод на lcd 16x2 напряжения и тока
при помоши ацп .
А также регулировка напряжения и тока.
Реклама:
__________________
да я такой
igonzo вне форума  
Непрочитано 25.08.2010, 18:36  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию Re: Помогите с atmega8

Вывод на LCD proavr.narod.ru/z5.htm

АЦП - proavr.narod.ru/z11.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 25.08.2010, 18:44  
MasterMushi
Вид на жительство
 
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
MasterMushi на пути к лучшему
По умолчанию Re: Помогите с atmega8

http://hardlock.org.ua/mc/mega/bp/index.html - тут сразу пример и схемы и кода и даже управление-контроль импульсника
__________________
Найди путь или проложи сам!
MasterMushi вне форума  
Непрочитано 25.08.2010, 22:19  
igonzo
Частый гость
 
Аватар для igonzo
 
Регистрация: 03.03.2009
Сообщений: 34
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
igonzo на пути к лучшему
По умолчанию Re: Помогите с atmega8

НЕ МОГЛИБЫ ЧУТЬ ПОДСКАЗАТЬ ПО ПРОГЕ

PHP код:

#define    TRUE    (!FALSE)
#define    FALSE   0
#define    BYTE    unsigned char
#define    WORD    unsigned short int
#define    BOOLEAN char
#define    CARDINAL unsigned long int


#include ‹mega8.h›

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include ‹lcd.h›
#include ‹delay.h›  

char byDisplay[33];        // буфер данных, для вывода на экран 
char Counter;
char Count = 5;

CARDINAL U;
CARDINAL I_ust;
CARDINAL I_izm;



void PrintBuf(void)
{
  int i;
  for(i=0; i‹6; i++)
  {
    lcd_putchar(byDisplay[i]);
  }
}



#define ADC_VREF_TYPE 0xC0

// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}           

// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{                   

// Reinitialize Timer 1 value
TCNT1H=0xFF;
TCNT1L=0x3C;
// Place your code here
  
  if (Counter++ ›= Count)
  {     
    Counter = 0;
    lcd_gotoxy(0,0); 
    //напряжение
    PrepareData(U / Count);   //  read_adc(2)/10.24*256     
    byDisplay[0] = byDisplay[2];
    byDisplay[1] = byDisplay[3];
    byDisplay[2] = '.';
    byDisplay[3] = byDisplay[4];
    byDisplay[4] = byDisplay[5];      
    byDisplay[5] = 'V';
    PrintBuf();       
    lcd_putsf("   ");
    
    //ток измеренный
    PrepareData((I_izm / Count) - 9);   //  read_adc(2)/10.24*256     
    byDisplay[0] = byDisplay[2];
    byDisplay[1] = byDisplay[3];
    byDisplay[2] = '.';
    byDisplay[3] = byDisplay[4];
    byDisplay[4] = byDisplay[5];      
    byDisplay[5] = 'A';
    PrintBuf();    
    
    lcd_gotoxy(0,1);
    
    //ток установленный
    lcd_putsf("Set I=   ");
    
    PrepareData((I_ust / Count) - 9);   //  read_adc(2)/10.24*256     
    byDisplay[0] = byDisplay[2];
    byDisplay[1] = byDisplay[3];
    byDisplay[2] = '.';
    byDisplay[3] = byDisplay[4];
    byDisplay[4] = byDisplay[5];      
    byDisplay[5] = 'A';  
    PrintBuf();   
    
    if (!PIND.3)
    {
      lcd_putchar(0xDA);
    } 
    else        
    {
      lcd_putchar(' ');
    }  
    
    U = 0;
    I_izm = 0;
    I_ust = 0;
  }
  else
  {
    U += read_adc(0)*2;
    I_izm += read_adc(2);
    I_ust += read_adc(1);
  }  
     
    
    
}


void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTD=0xFF;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x05;
TCNT1H=0xFA;
TCNT1L=0xE9;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: Int., cap. on AREF
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x82;

// LCD module initialization
lcd_init(16);

//lcd_clear();
//lcd_putsf("12.35V,   10.15A");
//lcd_putsf("Set I=    10.15A");
//delay_ms(2000);

// Global enable interrupts
#asm("sei")   
//lcd_putsf("3-19V, 0.2-10A  AmperVolt metter");
//ADC2 - ток установленный
//ADC1 - ток измеренный
//ADC0 - напряжение 

while (1)
      {
      };
}

А ТО У НЕЕ ОГРАНИЧЕНИЯ ПОКАЗУЕТ ТОЛЬКО ДО 20V 
__________________
да я такой

Последний раз редактировалось igonzo; 25.08.2010 в 23:23.
igonzo вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взаимозаменяемы ли ATmega8 и Attiny2313 rusentu Микроконтроллеры, АЦП, память и т.д 17 21.08.2010 18:41
Контроллер на основе Atmega8 и его доработка Dreadlock Электроника - это просто 16 04.05.2010 19:01
ATMega8 VS USB SkyProc Микроконтроллеры, АЦП, память и т.д 28 28.04.2010 17:01
[Решено] Помогите с прозвонкой rusyvochka Электроника - это просто 17 21.02.2010 23:08
Котроллер дисплея на Atmega8 kosant Микроконтроллеры, АЦП, память и т.д 24 30.11.2009 20:57


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.