HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL

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,310
Репутация: 639
619 131
34 9
 
25.06.2017 21:48 #2
а с чего вы решили что программа не заходит в прерывания?
Оценка
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,310
Репутация: 639
619 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,310
Репутация: 639
619 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, время: 15:55.
Обратная связь РадиоЛоцман Вверх