Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
19.04.2007, 23:42
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Делаю вольтметр!!!
Помогите сделать второй разряд Нада кусок прошывки на уровне моего понинания.
Прикрепленный файл: 2727366.rar
|
|
|
Сказали "Спасибо" vmax1987
|
|
|
20.04.2007, 18:05
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Вот прошивка если лень скачать
#include ‹mega8.h›
#include ‹m8_128.h›
#define ADC_VREF_TYPE 0x20
u8 mas[10]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void ind(void) {
if (PIND›=0) {
if (PIND‹6){
PORTB=mas[0];
PORTC.4=0;};};
if (PIND›=6) {
if (PIND‹11){
PORTB=mas[1];
PORTC.4=0;};};
if (PIND›=11) {
if (PIND‹16){
PORTB=mas[2];
PORTC.4=0;};};
if (PIND›=16) {
if (PIND‹21){
PORTB=mas[3];
PORTC.4=0;};};
if (PIND›=21) {
if (PIND‹26){
PORTB=mas[4];
PORTC.4=0;};};
if (PIND›=26) {
if (PIND‹31){
PORTB=mas[5];
PORTC.4=0;};};
if (PIND›=31) {
if (PIND‹36){
PORTB=mas[6];
PORTC.4=0;};};
if (PIND›=36) {
if (PIND‹41){
PORTB=mas[7];
PORTC.4=0;};};
if (PIND›=41) {
if (PIND‹46){
PORTB=mas[8];
PORTC.4=0;};};
if (PIND›=46) {
if (PIND‹51){
PORTB=mas[9];
PORTC.4=0;};};
}
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
PORTB=0;
ind();
}
interrupt [ADC_INT] void adc_isr(void)
{
// Read the 8 most significant bits
// of the AD conversion result
PORTD=ADCH;
}
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0xff;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 0,977 kHz
TCCR0=0x05;
TCNT0=0x00;
// ADC initialization
// ADC Clock frequency: 500,000 kHz
// ADC Voltage Reference: AREF pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0xe9;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;
// Global enable interrupts
#asm("sei")
while (1){
};
}
Может есть вариант по упрощению прошивки ?
|
|
|
|
20.04.2007, 18:09
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
И не нада нервно хихикать при чтении 8O
|
|
|
|
20.04.2007, 19:34
|
|
Прописка
Регистрация: 24.12.2006
Сообщений: 167
Сказал спасибо: 9
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Делаю вольтметр!!!
Сообщение от vmax1987
|
Помогите сделать второй разряд Нада кусок прошывки на уровне моего понинания.
|
Для чего вольтметр? Какой диапазон, измеряемых напряжений?
Прикрепленный файл: 2727366.rar
|
|
|
|
21.04.2007, 18:18
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Вольтметр нужен для того чтоб понять сам процес написания прошивки, а точнее понять принцип вывода переменной на дисплей при помощи динамической индикации.
|
|
|
|
21.04.2007, 19:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Сообщение от vmax1987
|
Вольтметр нужен для того чтоб понять сам процес написания прошивки, а точнее понять принцип вывода переменной на дисплей при помощи динамической индикации.
|
дисплей какой? жки или цифровой светодиодный индикатор?
Если цифровой индикатор,то ничего сложного нет ,выдаеш на порт цифру первого индикатора,включаеш индикатор общим анодом или катодом,гасиш его ,выставляеш вторую цифру,включаеш второй индикатор и так далее(да и смотриш что мигания не были видны глазу),но лучше применить микросхему динамической индикации.
|
|
|
|
21.04.2007, 19:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Этот кусок вне уровня моего понимания...Анализируешь число, если оно меньше 6, читаешь из знакогенератора 0, от 6 до 11, читаешь 1... Странно немного.
Сколько разрядов нужно выдавать ? Как делается стробирование , на чем ?
|
|
|
|
21.04.2007, 22:42
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Диапазон измеряемых напряжений 0-5В. Точность измерения 0,1В , а так как 0b00000001=0,02В то я анализирую число, если оно меньше 6, на индикаторе 0, от 6 до 11-1.
[/quote]
-- Прилагается рисунок: --
|
|
|
|
22.04.2007, 00:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Опять не понял.. Если у тебя точность измерения 0,1 Вольт, а минимальное значение бита 0,02 В, то на фик его анализировать - на 2 знаковом индикаторе все равно сотые видно не будет. Те число из регистра нужно разделить на 5 и уже его выводить.И функцию дисплея не делай воид, передай туда выводимое число в качестве параметра
Код:
|
void ind (unsigned char temp)
{
unsigned char des,edin;
des=temp/10;
edin=temp- des*10;
PORTB=mas[des];
//дальше выводишь, захлопываешь и т.п.
PORTC.4=0;
PORTC.5=1;
delay_ms(5);
PORTB=mas[edin];
//дальше выводишь, захлопываешь и т.п.
PORTC.4=1;
PORTC.5=0;
delay_ms(5);
} |
Это нужно ?
|
|
|
|
22.04.2007, 12:53
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Код:
|
void ind (unsigned char temp)
{
unsigned char des,edin;
des=temp/10;
edin=temp- des*10;
PORTB=mas[des];
//дальше выводишь, захлопываешь и т.п.
PORTC.4=0;
PORTC.5=1;
delay_ms(5);
PORTB=mas[edin];
//дальше выводишь, захлопываешь и т.п.
PORTC.4=1;
PORTC.5=0;
delay_ms(5);
} |
urry сапасибо, кажетса мне ето и нада.
Ище одно не по теме, как передать байт по одному проводу (1WIRE) только в одну сторону и как можно проще. Передать нада с ATmega8 на ATmega8 по радиоканалу?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Что я неверно делаю?
|
Rynaldo |
Proteus, KiCAD и другие ECAD |
1 |
13.05.2008 14:50 |
вольтметр В7-26
|
alex6 |
Измерительное оборудование |
3 |
18.10.2007 01:51 |
[Решено] 24 канальный вольтметр
|
Проходивший_мимо |
Измерительное оборудование |
11 |
03.01.2006 20:11 |
Часовой пояс GMT +4, время: 04:11.
|
|