Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-сен-26 21:14

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Вольтметр на плате 1886be2
СообщениеДобавлено: 2016-апр-18 13:51 
Не в сети

Зарегистрирован: 2016-апр-18 13:47
Сообщения: 3
Добрый день!

Помогите доработать код вольтметра. Выводит беспорядочно цифры, в чем причина?
#include <VE2_CC.h>
#include "int17xxx.h"
#pragma origin 0x8

interrupt iServer(void)
{
multi_interrupt_entry_and_save

PERIPHERAL_service:
TMR0_service:
// save on demand: PRODL,PRODH,TBLPTRH,TBLPTRL,FSR0,FSR1
/* process Timer 0 interrupt */
// T0IF is automatically cleared when the CPU vectors to 0x10
// restore on demand: PRODL,PRODH,TBLPTRH,TBLPTRL,FSR0,FSR1
T0CKI_service:
INT_service:
interrupt_exit_and_restore
}
/******************/


uns16 y;
uns16 e;
void init_adc(){
ADCON0=0b00100101;
ADCON1=0b10010000;
}

void delay()
{
int32 y;
for(y=0;y<80;++y)
;
}
void main(void)
{

int i;
int j;
int o;
int u;
int massiv[10];

int z,x,c,v,b,n,m,d,f;
uns16 tabl[10];
tabl [0] = 0b00111111;
tabl [1] = 0b00000110;
tabl [2] = 0b01011011;
tabl [3] = 0b01001111;
tabl [4] = 0b01100110;
tabl [5] = 0b01101101;
tabl [6] = 0b01111101;
tabl [7] = 0b00000111;
tabl [8] = 0b01111111;
tabl [9] = 0b01101111;
uns16 blok[10];
blok [0]=0b10000000;
blok [1]=0b01000000;
blok [2]=0b00100000;
blok [3]=0b00010000;
blok [4]=0b00001000;
blok [5]=0b00000100;
blok [6]=0b00000010;
blok [7]=0b00000001;
blok [8]=0b11111111;


DDRC = 0;
DDRD = 0;
DDRG = 0xFF;
PORTD = blok [0];
init_adc();
j=0;
while (1)
{
GO=1;
while(GO)
{
e = ADRESH*256+ADRESL;
y = 500 * e / 1023;
for (i=0;i<9;i++)
{
massiv[i]= y%10;
y=y/10;

}
for (i=0;i<9;i++)
{
switch(i)
{
case 0: {z=massiv[0];break;}
case 1: {x=massiv[1];break;}
case 2: {c=massiv[2];break;}
case 3: {v=massiv[3];break;}
case 4: {b=massiv[4];break;}
case 5: {n=massiv[5];break;}
case 6: {m=massiv[6];break;}
case 7: {d=massiv[7];break;}
case 8: {f=massiv[8];break;}

}
}




for (j=0;j<4;j++)
{
switch(j)
{
case 0:
PORTD = blok[j];
PORTC = tabl[c];
delay();
break;
case 1:
PORTD = blok[j];
PORTC = tabl[x];
delay();
break;
case 2:
PORTD = blok[j];
PORTC = tabl[z];
delay();
break;
/*case 3:
PORTD = blok[j];
PORTC = tabl[n];
delay();
break;
case 4:
PORTD = blok[j];
PORTC = tabl[b];
delay();
break;
case 5:
PORTD = blok[j];
PORTC = tabl[v];
delay();
break;
case 6:
PORTD = blok[j];
PORTC = tabl[c];
delay();
break;
case 7:
PORTD = blok[j];
PORTC = tabl[x];
delay();
break;
case 8:
PORTD = blok[j];
PORTC = tabl[z];
delay();
break; */
}

}
delay(); }


}}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yahoo [Bot] и гости: 1


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB