ЭФО предлагает со своего склада новую серию преобразователей интерфейсов USB UART компании FTDI FT232RNL-REEL

CCS compiler версии 5. Программа не входит в прерывания

Страница 1 из 3
Banned
 
Регистрация: 12.05.2017
Сообщений: 104
Репутация: 14
5 0
1 0
 
25.06.2017 21:43 #1
#include <acc1.h>
#int_TIMER1
int16 volt,cur;int8 i=0,sec=0,min=0,hour=0;
void TIMER1_isr(void)
{

i++;
if (i==100)
{ i=0;sec++;}
if (sec==60)
{sec=0;min++;}
if (min==60)
{min=0;hour++;}




}

#define ENABLE_PIN A1
#define RS_PIN A0
#define RW_PIN A3
#define Data4 A2
#define Data5 C0
#define Data6 C1
#define Data7 C2

#include <lcdd.c>

void lcdpr(signed int16 lc1, unsigned char v) //++++ ***226;***251;***226;***238;***228; ***237;***224; ***235;***241;***228; ***247;***232;***241;***235;***224; ***241; ***227;***224;***248;***229;***237;***232;***229;* **236; ***237;***229;***231;***237;***224;***247; ***237;***243;***235;***255;
{
signed int x2=-1;
while (lc1>=0)
{
x2=x2+1;
lc1=lc1-1000;
}
x2=x2+48;
if (x2>48) if (v==4) lcd_send_byte(1,x2);
lc1=lc1+1000;
x2=-1;
while (lc1>=0)
{
x2=x2+1;lc1=lc1-100;
}
x2=x2+48;
if (v==4) lcd_send_byte(1,x2);
lc1=lc1+100;
x2=-1;
if (v==4) lcd_send_byte(1,44);
while (lc1>=0)
{
x2=x2+1;lc1=lc1-10;
}
x2=x2+48;
lcd_send_byte(1,x2);
lc1=lc1+10;
x2=-1;
while (lc1>=0)
{
x2=x2+1;lc1=lc1-1;
}
x2=x2+48;
lcd_send_byte(1,x2);
}

void main()
{
setup_adc_ports(sAN3|sAN7);
setup_adc(ADC_CLOCK_DIV_64);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); //262 ms overflow

enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);

lcd_init();
delay_ms(500);
lcd_gotoxy(1,1);
lcd_putc("U=");
lcd_gotoxy(10,1);
lcd_putc("I=");

while(TRUE) //***238;***241;***237;***238;***226;***237;***238;* **233; ***246;***232;***234;***235; ***239;***240;***238;***227;***240;***224;***236;* **236;***251;
{
lcd_gotoxy(1,1);
lcdpr(hour,2);
lcd_putc(":");
lcdpr(min,2);

setup_adc(ADC_CLOCK_INTERNAL|VSS_VDD); //***237;***224;***241;***242;***240;***224;***232;* **226;***224;***229;***236; ***192;***214;***207; ***237;***224; ***238;***239;***238;***240;***237;***238;***229; ***237;***224;***239;***240;***255;***230;***229;* **237;***232;***229;=***239;***232;***242;***224;* **237;***232;***229;




setup_adc_ports(sAN3);
set_adc_channel(3);
volt = read_adc()*2;
delay_ms(30);
setup_adc_ports(sAN7);
set_adc_channel(7);
cur = read_adc();
delay_ms(30);



/* lcd_gotoxy(3,1);
lcd_putc(" ");
lcd_gotoxy(3,1);
lcdpr(volt,4); //volt
lcd_putc("V ");
*/
lcd_gotoxy(12,1);
lcd_putc(" ");
lcd_gotoxy(12,1);
if (cur==1) cur=0;
if (cur>75) cur=cur-((300*cur-22500)/7500); //***234;***238;***240;***240;***229;***234;***246;* **232;***255;
if (cur<75) if (cur>10)cur=cur+((22500-300*cur)/7500); //***234;***238;***240;***240;***229;***234;***246;* **232;***255;
lcdpr(cur,4);
lcd_putc("A");
// delay_ms(00);


}
}
Оценка
Эксперт
 
Аватар для DmitriyVDN
 
Регистрация: 08.11.2009
Сообщений: 2,309
Репутация: 636
616 131
34 9
 
25.06.2017 21:48 #2
а с чего вы решили что программа не заходит в прерывания?
Оценка
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Banned
 
Регистрация: 12.05.2017
Сообщений: 104
Репутация: 14
5 0
1 0
 
25.06.2017 21:57 #3
Цитата:
Сообщение от Alex_641
#include <acc1.h>
#int_TIMER1
int16 volt,cur;int8 i=0,sec=0,min=0,hour=0;
void TIMER1_isr(void)
{

i++;
if (i==100)
{ i=0;sec++;}
if (sec==60)
{sec=0;min++;}
if (min==60)
{min=0;hour++;}




}

#define ENABLE_PIN A1
#define RS_PIN A0
#define RW_PIN A3
#define Data4 A2
#define Data5 C0
#define Data6 C1
#define Data7 C2

#include <lcdd.c>

void lcdpr(signed int16 lc1, unsigned char v) //++++ ***226;***251;***226;***238;***228; ***237;***224; ***235;***241;***228; ***247;***232;***241;***235;***224; ***241; ***227;***224;***248;***229;***237;***232;***229;* **236; ***237;***229;***231;***237;***224;***247; ***237;***243;***235;***255;
{
signed int x2=-1;
while (lc1>=0)
{
x2=x2+1;
lc1=lc1-1000;
}
x2=x2+48;
if (x2>48) if (v==4) lcd_send_byte(1,x2);
lc1=lc1+1000;
x2=-1;
while (lc1>=0)
{
x2=x2+1;lc1=lc1-100;
}
x2=x2+48;
if (v==4) lcd_send_byte(1,x2);
lc1=lc1+100;
x2=-1;
if (v==4) lcd_send_byte(1,44);
while (lc1>=0)
{
x2=x2+1;lc1=lc1-10;
}
x2=x2+48;
lcd_send_byte(1,x2);
lc1=lc1+10;
x2=-1;
while (lc1>=0)
{
x2=x2+1;lc1=lc1-1;
}
x2=x2+48;
lcd_send_byte(1,x2);
}

void main()
{
setup_adc_ports(sAN3|sAN7);
setup_adc(ADC_CLOCK_DIV_64);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); //262 ms overflow

enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);

lcd_init();
delay_ms(500);
lcd_gotoxy(1,1);
lcd_putc("U=");
lcd_gotoxy(10,1);
lcd_putc("I=");

while(TRUE) //***238;***241;***237;***238;***226;***237;***238;* **233; ***246;***232;***234;***235; ***239;***240;***238;***227;***240;***224;***236;* **236;***251;
{
lcd_gotoxy(1,1);
lcdpr(hour,2);
lcd_putc(":");
lcdpr(min,2);

setup_adc(ADC_CLOCK_INTERNAL|VSS_VDD); //***237;***224;***241;***242;***240;***224;***232;* **226;***224;***229;***236; ***192;***214;***207; ***237;***224; ***238;***239;***238;***240;***237;***238;***229; ***237;***224;***239;***240;***255;***230;***229;* **237;***232;***229;=***239;***232;***242;***224;* **237;***232;***229;




setup_adc_ports(sAN3);
set_adc_channel(3);
volt = read_adc()*2;
delay_ms(30);
setup_adc_ports(sAN7);
set_adc_channel(7);
cur = read_adc();
delay_ms(30);



/* lcd_gotoxy(3,1);
lcd_putc(" ");
lcd_gotoxy(3,1);
lcdpr(volt,4); //volt
lcd_putc("V ");
*/
lcd_gotoxy(12,1);
lcd_putc(" ");
lcd_gotoxy(12,1);
if (cur==1) cur=0;
if (cur>75) cur=cur-((300*cur-22500)/7500); //***234;***238;***240;***240;***229;***234;***246;* **232;***255;
if (cur<75) if (cur>10)cur=cur+((22500-300*cur)/7500); //***234;***238;***240;***240;***229;***234;***246;* **232;***255;
lcdpr(cur,4);
lcd_putc("A");
// delay_ms(00);


}
}
почему программа не входит в прерывание ??? как всё сложно с микрочипами, и как просто с авр-ами
Оценка
Banned
 
Регистрация: 12.05.2017
Сообщений: 104
Репутация: 14
5 0
1 0
 
25.06.2017 21:58 #4
потому что нет изменения времени на лсд !
Оценка
Эксперт
 
Аватар для DmitriyVDN
 
Регистрация: 08.11.2009
Сообщений: 2,309
Репутация: 636
616 131
34 9
 
25.06.2017 22:05 #5
"volatile" спасёт или нет?
Оценка
Banned
 
Регистрация: 12.05.2017
Сообщений: 104
Репутация: 14
5 0
1 0
 
25.06.2017 22:08 #6
не пойму о чём Вы ??
Оценка
Banned
 
Регистрация: 12.05.2017
Сообщений: 104
Репутация: 14
5 0
1 0
 
25.06.2017 22:10 #7
Цитата:
Сообщение от DmitriyVDN
"volatile" спасёт или нет?
У меня всё в железе , протеусами и хереусами не располагаю , всё на физическом уровне
Оценка
Эксперт
 
Аватар для DmitriyVDN
 
Регистрация: 08.11.2009
Сообщений: 2,309
Репутация: 636
616 131
34 9
 
25.06.2017 22:10 #8
о типе переменных.
Оценка
Banned
 
Регистрация: 12.05.2017
Сообщений: 104
Репутация: 14
5 0
1 0
 
25.06.2017 22:13 #9
сейчас посмотрю
Оценка
Banned
 
Регистрация: 12.05.2017
Сообщений: 104
Репутация: 14
5 0
1 0
 
25.06.2017 22:17 #10
Цитата:
Сообщение от DmitriyVDN
о типе переменных.
все типы соответствуют, я хоть и чайник но в сфере микрочипов !!! А в авр проблем никогда не было, а ещё на паскале тетрис написал когда то давно .. ну это так ...
Оценка
Ответ
Страница 1 из 3
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Оценка этой теме
Оценка этой теме:
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

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

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 16:49.
Обратная связь РадиоЛоцман Вверх