Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Часы реального времени на Atmega16 http://www.cyberforum.ru/avr/thread1163667.html
Собрала в Proteus схему и написала код, но работает криво (схема в Протеус и код в архиве). Надеюсь мужчины в этом понимают лучше и помогут исправить недостатки. Возможно, лучше убрать вторую...
ATmega16. Управление светодиодом Atmega AVR микроконтроллер
День добрый. Имеется задача-организация управления светодиодом по средствам программы proteus, код ес-но должен быть написан на асемблере. Само условие: имеется кнопка, при нажатии на которую диод...
Atmega AVR микроконтроллер AT89C51. Keil (ASM). Деление вычитанием
Добрый вечер, люди добрые, столкнулся с проблемой в курсовой. В одной из частей курсовой нужно реализовать формулу (235-400*Т1/Т2, где T1 и T2 регистры счетчиков по 16 бит(ну для простоты задачи,...
Atmega AVR микроконтроллер Atmel Studio (Двоично-десятич перевод) двоично-десятичный перевод двухбайтного числа из двоичной формы в десятичную и обратно. Вторая лаба по предмету , препод ничего не объясняет и как делать непонятно.Надеюсь поможете сделать полностью) http://www.cyberforum.ru/avr/thread1153910.html
Atmega AVR микроконтроллер ATmel Studio 6.1. Debugging tools is not set http://www.cyberforum.ru/avr/thread1152066.html
Как исправить ошибку : debugging tools is not set . Please , interface and clock set correct tool for the currect target.
Atmega AVR микроконтроллер AVR (ASM). Одновременное нажатие кнопок
Как организовать одновременное нажатие двух кнопок чтобы, при этом загорались три светодиода. (на assembler)
Atmega AVR микроконтроллер Какая разница между таймерами T0,T1,T2?
Какая разница между таймерами T0,T1,T2?
Atmega AVR микроконтроллер Все работает в Протеусе, а в железе не хочет Всем доброго времени суток. Есть прошивка для atmega16, она работает в протеусе, но в железе отказывается это делать. Прошиваю через 5 проводков и uniprof. МК должен просто "дрыгать тремя лапками"... http://www.cyberforum.ru/avr/thread1139441.html
Atmega AVR микроконтроллер ATmega16 (VMLAB). Управление светодиодами http://www.cyberforum.ru/avr/thread1137563.html
Написать программу в AVR, что бы работала в VMLAB: устройство с 4 светодиодами тактовой частотой 24 мГц, при включении все не горят, через 4 секунды все светодиоды начинают мигать (интервал 1 сек)...
Atmega AVR микроконтроллер ATmega32. Чтение EEPROM Всем привет Кто поможет с программой которая передает текст из Flash памяти программ в оперативную память? http://www.cyberforum.ru/avr/thread1136545.html
PashaShulga
1 / 1 / 0
Регистрация: 15.06.2010
Сообщений: 37
0

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

02.05.2014, 15:24. Просмотров 500. Ответов 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
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru