Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
PashaShulga
1 / 1 / 0
Регистрация: 15.06.2010
Сообщений: 37
1

Разрядность вывода числа на индикаторе

02.05.2014, 15:24. Просмотров 496. Ответов 1
Метки нет (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <mega8.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>
#include <string.h>
#define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR))
 
char result[10];
unsigned char volt;
 
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}
 
void main(void)
{
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
TCCR0=(0<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00;
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
 
ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2=0x00;
 
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<TOIE0);
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
SFIOR=(0<<ACME);
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
 
 
while (1)
 
      {
      delay_us(20);
      volt = read_adc(3)*5.00/1023.00*10;
      sprintf(result,"Volt= %i.%u", volt/10, volt%10);
      lcd_init(16);
      lcd_gotoxy(0,0);
      lcd_puts(result);
      }
}
данный код является автоматически скомпилированным CV AVR задача крайне проста и, баян, написать вольтметр. Схема в протеусе работает все хорошо, по я не могу понять одного - как мне добиться точности вывода на дисплей не к десяткам, а к сотням вольта? Если умножать volt = read_adc(3)*5.00/1023.00*100 а не на 10, высыпаем мусор.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2014, 15:24
Ответы с готовыми решениями:

Разрядность числа нашла, не могу найти сумму цифр числа.
Здравствуйте! Помогите, пожалуйста, доделать задачу. Разрядность числа нашла, не могу найти сумму...

разрядность числа
Помогите, задали определить разрядночть числа через подпрограмму функции. Обычное определение...

Уменьшить разрядность числа
в файле есть 2 таблицы.в одной из таблиц есть 2 колонки Imin Imax там в ячейки вписаны цифры.вопрос...

Определить разрядность числа
Добрый день, написал функцию для определения разрядности числа, однако отказывается работать....

Определить разрядность числа
Не получается решить задачи.... 1)Дано целое число. Если оно является однозначным, вывести число...

1
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,774
04.05.2014, 19:54 2
C
1
unsigned char volt
а вы его умножаете на 100.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2014, 19:54

Разрядность числа в классе
На страницах есть, spanЫ в них занесены числа: &lt;span class=&quot;suumm&quot;&gt;1000&lt;/span&gt; &lt;span...

Определить разрядность числа
написать программу, которая вводит с клавиатуры число и определят его разность. При вводе числа 0...

Разрядность(нумерация) элементов числа
Я написал такую вот прогу: #include&lt;iostream&gt; using namespace std; void main() { int a=0, i,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru