Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
01.10.2008, 11:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
синтаксис
Код:
|
unsigned char preobraz(unsigned char temp)
{
unsigned char i;
switch(temp)
{
case 0:i=180;break;
case 1: i=0; break;
case 2: i=20; break;
case 3: i=40; break;
case 4: i=60; break;
case 5: i=80; break;
case 6: i=100; break;
case 7: i=120;break;
case 8: i=140; break;
case 9: i=160; break;
default:;
}
return i;
} |
|
|
|
|
01.10.2008, 12:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Спасибо,написал вам,можете удалить свои контакты.
|
|
|
|
01.10.2008, 13:45
|
|
Гражданин KAZUS.RU
Регистрация: 20.05.2005
Сообщений: 659
Сказал спасибо: 40
Сказали Спасибо 186 раз(а) в 116 сообщении(ях)
|
Сообщение от CERGEI1982
|
Подскажите,что не нравится хайтеку.
|
Открываем мануал, ищем раздел - Appendix B
Error and Warning Messages
(246) case label not in switch (Parser)
A case label has been encountered, but there is no enclosing switch statement. A case label may
only appear inside the body of a switch statement.
If there is a switch statement before this case label, there may be one too many closing braces
in the switch code which would prematurely terminate the switch statement, e.g.:
switch(input) {
case ’0’:
count++;
break;
case ’1’:
if(count›MAX)
count= 0;
} /* woops -- this shouldn’t be here */
break;
case ’2’: /* error flagged here */
(243) inappropriate break/continue (Parser)
A break or continue statement has been found that is not enclosed in an appropriate control structure.
A continue can only be used inside a while, for or do while loop, while break can only be
used inside those loops or a switch statement, e.g.:
switch(input) {
case 0:
if(output == 0)
input = 0xff;
} /* woops! this shouldn’t be here and closed the switch */
break; /* this should be inside the switch */
(195) expression syntax (Parser)
This expression is badly formed and cannot be parsed by the compiler, e.g.:
a /=% b; /* woops -- maybe that should be: a /= b; */
Еще в хайтеке есть папка- «samples» в нее тоже не мешает заглядывать, будет намного больше пользы, чем ждать пока на форуме кто-либо подправит криво передранный код.
|
|
|
|
13.12.2008, 21:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Для меня пока чужд хайтек,после работы с CCS,подскажите что ему не нравится.
Код:
|
#include ‹pic.h›
#include "main.h"
#include "delay.h"
#include "DS18B20.h"
void init_f73(void);
void BCD(void);
//void output_574(void);
__CONFIG( UNPROTECT & XT & BOREN & PWRTEN & WDTDIS);
unsigned char n;
void interrupt tc_int(void)
{
if(TOIE&T0IF)
{
TOIF=0;
n++;
}
if(TMR1IF&TMR1IE)
{
TMR1IF=0;
n--;
}
}
main(void)
{
init_f73();
initialization();
}
void init_f73()
{
OPTION=0x84; //10000100 выключены подтягивающ резисторы и
//прескалер перед первым таймером 128*256
TRISA=0xff;
TRISB=0x00;
PORTB=0xC0;
TRISC=0x00;
PORTC=0x00;
INTCON=0xe0; //1110 0000 таймер1 тож прерывания,
//для индикации
T1CON=0x01; //включаем таймер1 без прескалера 65536
T2CON=0x00;
SSPCON=0x00;
CCP1CON=0x00;
CCP2CON=0x00;
ADCON1=0x04; //цифровые тока 2,5 портА
ADCON0=0xc9; // тактирование от внут RC,RA1
PIE1=0x02; //прерывания первого и второго таймера
PIE2=0x00;
TXSTA=0x00;
}
void BCD()
{
unsigned char BYTE mas[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0,0xbf,0xa3,
0x87};
// 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xbf,0Xa3 ,0x87
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 , - ,МАЛ НОЛИК, t
ds_hm.dec=ds_hm.term/10;
ds_hm.edin=ds_hm.term-(ds_hm.dec*10);
ds_hm.dec=mas[ds_hm.dec];
ds_hm.edin=mas[ds_hm.edin];
} |
Ошибки на картинке,проект прилагаю
-- Прилагается рисунок: --
Прикрепленный файл: 875806.rar
|
|
|
|
13.12.2008, 21:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
В T0IF и T0IE разбрался,там нолики,а что с массивом делать не пойму
|
|
|
|
13.12.2008, 23:04
|
|
Временная регистрация
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
убери в unsigned char BYTE mas[]
BYTE
__________________
разум когда-нибудь победит... (с)
|
|
|
|
14.12.2008, 05:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Спасибо,вчера уже разобрался сам,ответить просто не смог,просто тупо скопировал из CCS и панику навел.
|
|
|
|
14.12.2008, 18:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Подскажете есть ли инструкция SLEEP в хайтеке,хочу усыпить и измерить напряжения по всем правилам,попробывал тупо написать не тут то было,поисках в описании английском,толком ни че не нашел на pic16
|
|
|
|
14.12.2008, 19:08
|
|
Временная регистрация
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
SLEEP();
__________________
разум когда-нибудь победит... (с)
|
|
|
|
14.12.2008, 19:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Благодарю,хотел как то перевести весь мануал,но не хватило терпения и хорошего познания в английском
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:51.
|
|