Популярные микроконтроллеры Nuvoton серий М2354 и М251 со склада компании Смарт-ЭК

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);


}
}
Оценка
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO.
Эксперт
 
Аватар для DmitriyVDN
 
Регистрация: 08.11.2009
Сообщений: 2,310
Репутация: 640
620 131
34 9
 
25.06.2017 21:48 #2
а с чего вы решили что программа не заходит в прерывания?
Оценка
КОМПЭЛ продолжает поддерживать и расширять список складских позиций Hongfa, представленных электромеханическими реле. Продукция компании активно применяется в таких областях, как промышленность, энергетика, бытовые приборы, автомобильная отрасль и специальная техника, требующая высокой надежности и на сегодняшний момент может легко заменить электромеханические реле ушедших из РФ брендов.
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
Репутация: 640
620 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
Репутация: 640
620 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, время: 02:30.
Обратная связь РадиоЛоцман Вверх