Свежие обсуждения
Микроконтроллеры

Ликбез по С для микроконтроллеров PIC

1 60 64

Спасибо за сцылочку

 

А есть примеры? Кстати, архив отсюда скачать не удалось. Скачал в другом месте, а примеров нет в комплекте.

 

Dosikus на 16 странице есть программа проверки экспонеты
(exp)
Вопрос: на 34 строке стоит (break-points) и при 2 кликах на RUN
получются такие же данные переменных как в примере.
Чтобы просмотреть данные переменных Х и У надо (break-points)
ставить именно в строке 34? или в другом месте можно посмотреть.
Поясните пожал..та.

 

skb4: Dosikus на 16 странице есть программа проверки экспонеты
(exp)
Вопрос: на 34 строке стоит (break-points) и при 2 кликах на RUN
получются такие же данные переменных как в примере.
Чтобы просмотреть данные переменных Х и У надо (break-points)
ставить именно в строке 34? или в другом месте можно посмотреть.
Поясните пожал..та.

В чем дебажишь ?

 

Вопрос у меня:

Есть программа (не моя) из нескольких модулей и я её пытаюсь откомпилировать в HI-TEC PIC18 V9.51 PRO так вот он на несколько функций орёт :

function "_Имя функции" redefined

Ка я понимаю - это двойное определение функции, но Void имя функции (входные переменные) имеется в модулях по одному разу. Поясните причину ?

 

Приветствую форумчане. Пишу на ЦЦС ПИКЕ уже годик вроде все было хорошо до последнего момента.Вобщем создал я макетную плату для обмена с компом данными по 485.на плате стоит 16ф877а+МАХ3089(использую в полнодуплексном режиме).текст программы ниже

#include <16F877а.h>
#device *=16
#device ICD=TRUE
#device adc=8

#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES PUT //Power Up Timer
#FUSES PROTECT //Code protected from reads
#FUSES DEBUG //Debug mode for use with ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected

#use delay(clock=20000000)
//#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
INT16 B;
#byte leds=0x09
#bit led_1=leds.0
#bit led_2=leds.1
#bit led_3=leds.2

#byte RS_485=0x07
#bit DE=RS_485.2
#bit HF=RS_485.5

#DEFINE ON 1;
#DEFINE OFF 0;

#INT_RDA
VOID PRIEM()
{
b=fgetc();
led_1=1;
clear_interrupt(INT_RDA);
}

void main()
{
int c;
set_tris_E(0x00);
set_tris_C(0x9B);

HF=Off;
DE=On;

led_1=0;
led_2=1;
led_3=1;
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);

enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

WHILE(1)
{

printf("YYY");
DELAY_MS(1000);

}
}

при выполнении проги происходит следующее:
1.при передаче данных происходит прерывание по приему.
2.данные на ком приходят следующие G;Л4
насчет прерывания по приему я выяснил следующее что во время передачи на линии приема есть импульсы!!!!!убрать эти импульсы удалось только когда перевел УСАРТ на програмный!!!!!!!!!че за фигня это так усарт работает или это ЦЦСПИК????
насчет данных то что я только не пробовал:пробовал инвертировать данные програмно и железом нефига не получается-данные с пика не совпадают с данными с компа.
ПОДСКАЖИТЕ КТО С ТАКИМ ВСТРЕЧАЛСЯ

 

GLADKIH: че за фигня это так усарт работает или это ЦЦСПИК????
А это не эхо часом? В RS-232 такого нет, а вот в CAN - есть. Его м\с трансивера делает. Так положено. Может и в RS-495 тоже оно есть?

 

насчет эха не знаю.но ведь это не самое страшное.данные на комп приходят кривыми

 

А на компе RS485?

 

на компе стоит 485+преобразователь в ЮСБ.дело в том что такую сборку уже собирали на АВР и она нормально работает.