18.09.2008, 22:42
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Народ.Кто использовал драйвер(ЦЦСПиКА) 485 интерфейса подскажите как им пользоваться, а то я не пойму.
как мне отправить допустим число 10 по адресу 09.и как это число принять другому контроллеру?
Прикрепленный файл: 7116107.rar
|
|
|
|
25.09.2008, 23:46
|
|
Временная регистрация
Регистрация: 22.07.2006
Сообщений: 54
Сказал спасибо: 7
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
подскажите пжалста:
кварц 20 МГц, частота PWM 125 кГц.
при таком коде
Код:
|
setup_timer_2(T2_DIV_BY_1,39,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(1); |
получаю такую картинку:
вопрос - можно ли получить скважность (ширину импульса) еще меньше?
если да, то как?
спасибо
|
|
|
|
26.09.2008, 07:06
|
|
Прописка
Регистрация: 18.06.2006
Сообщений: 179
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Сообщение от Gladkih
|
Народ.Кто использовал драйвер(ЦЦСПиКА) 485 интерфейса подскажите как им пользоваться, а то я не пойму.
как мне отправить допустим число 10 по адресу 09.и как это число принять другому контроллеру?
|
RS485 - это физический уровень, к "ЦЦСПиК" это не имеет отношения. Если имется ввиду modbus, то про него и нужно почитать, чтобы понимать о чем разговор.
Прикрепленный файл: 7116107.rar
|
|
|
|
26.09.2008, 07:22
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Сообщение от atlab
|
Сообщение от Gladkih
|
Народ.Кто использовал драйвер(ЦЦСПиКА) 485 интерфейса подскажите как им пользоваться, а то я не пойму.
как мне отправить допустим число 10 по адресу 09.и как это число принять другому контроллеру?
|
RS485 - это физический уровень, к "ЦЦСПиК" это не имеет отношения. Если имется ввиду modbus, то про него и нужно почитать, чтобы понимать о чем разговор.
|
да нет у ццспика два драйвера
1.на 485
2.на модбас
1-й драйвер прикрепленном файле
Прикрепленный файл: 7116107.rar
|
|
|
|
26.09.2008, 11:41
|
|
Прописка
Регистрация: 18.06.2006
Сообщений: 179
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Еще раз: 485 - это физический интерфейс.
То что написано в этом драйвере - заготовка для реализации своего протокола обмена с помощью этого интерфейса: управление микросхемой драйвера 485, контроль коллизий...
Все остальное (собственно протокол) надо писать самому.
Прикрепленный файл: 7116107.rar
|
|
|
|
26.09.2008, 12:50
|
|
Временная регистрация
Регистрация: 22.07.2006
Сообщений: 54
Сказал спасибо: 7
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Сообщение от wasp
|
подскажите пжалста:
кварц 20 МГц, частота PWM 125 кГц.
при таком коде
Код:
|
setup_timer_2(T2_DIV_BY_1,39,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(1); |
получаю такую картинку:
вопрос - можно ли получить скважность (ширину импульса) еще меньше?
если да, то как?
спасибо
|
ну ткните плиз носом, как при той же частоте (125кГц) уменьшить ширину импульса, или дальше уже некуда?
да, контроллер PIC16F887.
|
|
|
|
27.09.2008, 04:44
|
|
Прописка
Регистрация: 18.06.2006
Сообщений: 179
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Сообщение от wasp
|
Сообщение от wasp
|
подскажите пжалста:
кварц 20 МГц, частота PWM 125 кГц.
при таком коде
Код:
|
setup_timer_2(T2_DIV_BY_1,39,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(1); |
получаю такую картинку:
...
вопрос - можно ли получить скважность (ширину импульса) еще меньше?
если да, то как?
спасибо
|
ну ткните плиз носом, как при той же частоте (125кГц) уменьшить ширину импульса, или дальше уже некуда?
да, контроллер PIC16F887.
|
Ты сам то понимаешь, что написал?
Задал период ШИМ, задал заполнение (длительность импульса). Сможешь задать pwm_duty меньше 1 - импульс будет короче. %)
|
|
|
|
27.09.2008, 17:08
|
|
Временная регистрация
Регистрация: 22.07.2006
Сообщений: 54
Сказал спасибо: 7
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Сообщение от atlab
|
Ты сам то понимаешь, что написал?
Задал период ШИМ, задал заполнение (длительность импульса). Сможешь задать pwm_duty меньше 1 - импульс будет короче. %)
|
дык в том-то и дело, что не очень...
это мне wizard такие установки выдал...
pwm_duty меньше 1- не выходит...что надо изменить?
|
|
|
|
27.09.2008, 18:18
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
подскажите пожалуста по библиотеке модбас ццспика. я никогда не работал с такими интерфейсами и поэтому немогу понять многих вещей(почти всех).вот инфо по этой библиотеке подскажите что означает каждая команда.буду очень благодарен.
//// MODBUS_TYPE MODBUS_TYPE_MASTER or MODBUS_TYPE_SLAVE ////
//// MODBUS_SERIAL_INT_SOURCE Source of interrupts ////
//// (MODBUS_INT_EXT,MODBUS_INT_RDA,MODBUS_INT_RDA2) ////
//// MODBUS_SERIAL_BAUD Valid baud rate for serial ////
//// MODBUS_SERIAL_RX_PIN Valid pin for serial receive ////
//// MODBUS_SERIAL_TX_PIN Valid pin for serial transmit ////
//// MODBUS_SERIAL_ENABLE_PIN Valid pin for serial enable, rs485 only ////
//// MODBUS_SERIAL_RX_ENABLE Valid pin for serial rcv enable, rs485 only ////
//// MODBUS_SERAIL_RX_BUFFER_SIZE Size of the receive buffer ////
//// ////
//// ////
//// SHARED API: ////
//// ////
//// modbus_init() ////
//// - Initialize modbus serial communication system ////
//// ////
//// modbus_serial_send_start(address,func) ////
//// - Setup serial line to begin sending. Once this is called, you can send data ////
//// using modbus_serial_putc(). Should only be used for custom commands. ////
//// ////
//// modbus_serial_send_stop() ////
//// - Must be called to finalize the send when modbus_serial_send_start is used. ////
//// ////
//// modbus_kbhit() ////
//// - Used to check if a packet has been received. ////
//// ////
//// MASTER API: ////
//// All master API functions return 0 on success. ////
//// ////
//// exception modbus_read_coils(address,start_address,quantity) ////
//// - Wrapper for function 0x01(read coils) in the MODBUS specification. ////
//// ////
//// exception modbus_read_discrete_input(address,start_address,q uantity) ////
//// - Wrapper for function 0x02(read discret input) in the MODBUS specification. ////
//// ////
//// exception modbus_read_holding_registers(address,start_addres s,quantity) ////
//// - Wrapper for function 0x03(read holding regs) in the MODBUS specification. ////
//// ////
//// exception modbus_read_input_registers(address,start_address, quantity) ////
//// - Wrapper for function 0x04(read input regs) in the MODBUS specification. ////
//// ////
//// exception modbus_write_single_coil(address,output_address,on ) ////
//// - Wrapper for function 0x05(write single coil) in the MODBUS specification. ////
//// ////
//// exception modbus_write_single_register(address,reg_address,r eg_value) ////
//// - Wrapper for function 0x06(write single reg) in the MODBUS specification. ////
//// ////
//// exception modbus_read_exception_status(address) ////
//// - Wrapper for function 0x07(read void status) in the MODBUS specification. ////
//// ////
//// exception modbus_diagnostics(address,sub_func,data) ////
//// - Wrapper for function 0x08(diagnostics) in the MODBUS specification. ////
//// ////
//// exception modbus_get_comm_event_counter(address) ////
//// - Wrapper for function 0x0B(get comm event count) in the MODBUS specification.////
//// ////
//// exception modbus_get_comm_event_log(address) ////
//// - Wrapper for function 0x0C(get comm event log) in the MODBUS specification. ////
//// ////
//// exception modbus_write_multiple_coils(address,start_address, quantity,*values) ////
//// - Wrapper for function 0x0F(write multiple coils) in the MODBUS specification.////
//// - Special Note: values is a pointer to an int8 array, each byte represents 8 ////
//// coils. ////
//// ////
//// exception modbus_write_multiple_registers(address,start_addr ess,quantity,*values)///
//// - Wrapper for function 0x10(write multiple regs) in the MODBUS specification. ////
//// - Special Note: values is a pointer to an int8 array ////
//// ////
//// exception modbus_report_slave_id(address) ////
//// - Wrapper for function 0x11(report slave id) in the MODBUS specification. ////
//// ////
//// exception modbus_read_file_record(address,byte_count,*reques t) ////
//// - Wrapper for function 0x14(read file record) in the MODBUS specification. ////
//// ////
//// exception modbus_write_file_record(address,byte_count,*reque st) ////
//// - Wrapper for function 0x15(write file record) in the MODBUS specification. ////
//// ////
//// exception modbus_mask_write_register(address,reference_addre ss,AND_mask,OR_mask)////
//// - Wrapper for function 0x16(read coils) in the MODBUS specification. ////
//// ////
//// exception modbus_read_write_multiple_registers(address,read_ start,read_quantity,////
//// write_start,write_quantity, *write_registers_value) ////
//// - Wrapper for function 0x17(read write mult regs) in the MODBUS specification.////
//// ////
//// exception modbus_read_FIFO_queue(address,FIFO_address) ////
//// - Wrapper for function 0x18(read FIFO queue) in the MODBUS specification. ////
//// ////
//// ////
//// Slave API: ////
//// ////
//// void modbus_read_coils_rsp(address,byte_count,*coil_dat a) ////
//// - Wrapper to respond to 0x01(read coils) in the MODBUS specification. ////
//// ////
//// void modbus_read_discrete_input_rsp(address,byte_count, *input_data) ////
//// - Wrapper to respond to 0x02(read discret input) in the MODBUS specification. ////
//// ////
//// void modbus_read_holding_registers_rsp(address,byte_cou nt,*reg_data) ////
//// - Wrapper to respond to 0x03(read holding regs) in the MODBUS specification. ////
//// ////
//// void modbus_read_input_registers_rsp(address,byte_count ,*input_data) ////
//// - Wrapper to respond to 0x04(read input regs) in the MODBUS specification. ////
//// ////
//// void modbus_write_single_coil_rsp(address,output_addres s,output_value) ////
//// - Wrapper to respond to 0x05(write single coil) in the MODBUS specification. ////
//// ////
//// void modbus_write_single_register_rsp(address,reg_addre ss,reg_value) ////
//// - Wrapper to respond to 0x06(write single reg) in the MODBUS specification. ////
//// ////
//// void modbus_read_exception_status_rsp(address, data) ////
//// - Wrapper to respond to 0x07(read void status) in the MODBUS specification. ////
//// ////
//// void modbus_diagnostics_rsp(address,sub_func,data) ////
//// - Wrapper to respond to 0x08(diagnostics) in the MODBUS specification. ////
//// ////
//// void modbus_get_comm_event_counter_rsp(address,status,e vent_count) ////
//// - Wrapper to respond to 0x0B(get comm event count) in the MODBUS specification////
//// ////
//// void modbus_get_comm_event_log_rsp(address,status,event _count,message_count, ////
//// *events, events_len) ////
//// - Wrapper to respond to 0x0C(get comm event log) in the MODBUS specification. ////
//// ////
//// void modbus_write_multiple_coils_rsp(address,start_addr ess,quantity) ////
//// - Wrapper to respond to 0x0F(write multiple coils) in the MODBUS specification////
//// ////
//// void modbus_write_multiple_registers_rsp(address,start_ address,quantity) ////
//// - Wrapper to respond to 0x10(write multiple regs) in the MODBUS specification.////
//// ////
//// void modbus_report_slave_id_rsp(address,slave_id,run_st atus,*data,data_len) ////
//// - Wrapper to respond to 0x11(report slave id) in the MODBUS specification. ////
//// ////
//// void modbus_read_file_record_rsp(address,byte_count,*re quest) ////
//// - Wrapper to respond to 0x14(read file record) in the MODBUS specification. ////
//// ////
//// void modbus_write_file_record_rsp(address,byte_count,*r equest) ////
//// - Wrapper to respond to 0x15(write file record) in the MODBUS specification. ////
//// ////
//// void modbus_mask_write_register_rsp(address,reference_a ddress,AND_mask,OR_mask) ////
//// - Wrapper to respond to 0x16(read coils) in the MODBUS specification. ////
//// ////
//// void modbus_read_write_multiple_registers_rsp(address,* data,data_len) ////
//// - Wrapper to respond to 0x17(read write mult regs) in the MODBUS specification////
//// ////
//// void modbus_read_FIFO_queue_rsp(address,FIFO_len,*data) ////
//// - Wrapper to respond to 0x18(read FIFO queue) in the MODBUS specification. ////
//// ////
//// void modbus_exception_rsp(int8 address, int16 func, exception error) ////
//// - Wrapper to send an exception response. See exception list below. ////
//// ////
//// Exception List: ////
//// ILLEGAL_FUNCTION, ILLEGAL_DATA_ADDRESS, ILLEGAL_DATA_VALUE, ////
//// SLAVE_DEVICE_FAILURE, ACKNOWLEDGE, SLAVE_DEVICE_BUSY, MEMORY_PARITY_ERROR, ////
//// GATEWAY_PATH_UNAVAILABLE, GATEWAY_TARGET_NO_RESPONSE ////
//// ////
|
|
|
|
28.09.2008, 04:15
|
|
Прописка
Регистрация: 18.06.2006
Сообщений: 179
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Сообщение от wasp
|
дык в том-то и дело, что не очень...
это мне wizard такие установки выдал...
pwm_duty меньше 1- не выходит...что надо изменить?
|
Wizadrd прав, а ты нет Меньше 1 заполнение не сделать.
P.S. Ну хоть что-нибудь почитай, чтобы понимать, что делаешь. Это ведь не под Windows лабать, хоть немного нужно понимать железо.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:09.
|
|