www.open-tager.ru http://www.open-tager.ru/forum/ |
|
Мини модули http://www.open-tager.ru/forum/viewtopic.php?f=5&t=2043 |
Страница 3 из 3 |
Автор: | mmapooh [ 28 май 2013, 13:38 ] |
Заголовок сообщения: | Re: Мини модули |
Ребята, кто знает как работае комманда @sleep@ в PicBasic и как контролер пробудить из режима сна по переполнению WDT? так вроде и по даташиту и по логике всё верно, а протеус отказывается пробуждать контроллер (или дело в протеусе?) Код: 'Written for PICBasic Pro Compiler version 2.50 (www.melabs.com)
'Processor=PIC16F684 (WDT=ON; MCLR=OFF; OSC=INTRC) DEFINE OSC 8 '************************************************************* '************************************************************* '******************** DEFINE CONSTANTS *********************** '************************************************************* '************************************************************* protocol CON 232 '232=MT Core mtheader CON 2400 mtbit0 CON 600 mtbit1 CON 1200 mtspace CON 600 '************************************************************* '************************************************************* '******************** DEFINE VARIABLES *********************** '************************************************************* '************************************************************* bit_counter VAR BYTE dip_time VAR BYTE reload_time VAR BYTE databyte VAR BYTE databyte1 VAR BYTE hit_detect VAR BYTE length VAR BYTE main_loop_timer VAR WORD message VAR BYTE message_ID VAR BYTE temp VAR BYTE temp2 VAR BYTE temp3 VAR WORD '************************************************************* '************************************************************* '******************** PIN ASSIGNMENTS ************************ '************************************************************* '************************************************************* Symbol trigger = PORTA.0 'Send Button Symbol dipsw8 = PORTA.1 'Dip Switch Symbol dipsw4 = PORTA.2 'Dip Switch Symbol dipsw2 = PORTA.4 'Dip Switch Symbol dipsw1 = PORTA.5 'Dip Switch Symbol statusLED = PORTC.0 'status LED indicator Symbol mod_out = PORTC.5 'IR mod output / PWM out '************************************************************* '************************************************************* '******************** INITIALIZATION ************************* '************************************************************* '************************************************************* initialize: CLEAR OSCCON = %01111000 CMCON0 = 7 'turn off comparators ANSEL = 0 PR2 = 35 'PWM Period (40K=49, 56K=35) (35 to 55) CCPR1L = 15 'PWM Duty Cycle (1 to 15) T2CON = 4 'Timer2 = ON; Prescale = 1:1 CCP1CON = 0 'PWM module off OPTION_REG = %01111111 'Turn PortA weak pull-ups TRISA = %111111 'set PortA directions WPUA = %110111 'enable weak pull-ups PortA IOCA = %000000 'disable PORTA.0 Int On Change TRISC = %000000 'set PortC directions PORTA = %000000 PORTC = %000000 ' INPUT trigger OUTPUT mod_out OUTPUT statusLED '--------------------------------------------------------------------------- message_ID = 3 message = $04 'Respawn IF dipsw1 = 0 THEN message = $06 'Full Ammo ENDIF IF dipsw2 = 0 THEN dip_time.1 = 1 ENDIF IF dipsw4 = 0 THEN dip_time.2 = 1 ENDIF IF dipsw8 = 0 THEN dip_time.3 = 1 ENDIF Lookup dip_time,[1,2,3,4,5,6,9,12],reload_time '--------------------------------------------------------------------------- '************************************************************* '************************************************************* '********************* MAIN PROGRAM ************************** '************************************************************* '************************************************************* start: FOR temp = 1 to reload_time FOR temp2 = temp to reload_time 'Flash statusLED to indicate Timer Setting HIGH statusLED '1 Flash = 5 minutes PAUSE 400 LOW statusLED PAUSE 250 NEXT temp2 SLEEP 130 NEXT temp temp3=500 FOR temp = 1 to 50 LOW statusLED Pause temp3 HIGH statusLED Pause temp3 temp3 = temp3 - 10 NEXT temp high statusLED FOR temp = 1 to 10 GoSub send_message LOW mod_out PAUSE 2000 NEXT temp LOW statusLED GOTO start '----------------------------------------------- '************************************************************* '************************************************************* '********************** SUBROUTINES ************************** '************************************************************* '************************************************************* send_message: 'send 24 bits CCP1CON = 12 'send MT header pulse (2.4mS) pauseus mtheader CCP1CON = 0 message_first_byte: databyte = message_ID | %10000000 '(packet_ID=1; sys_msg) GoSub send_byte message_second_byte: databyte = message GoSub send_byte message_third_byte: databyte = protocol GoSub send_byte Return '----------------------------------------------------------- send_byte: 'send 8 bits (databyte) For bit_counter = 1 TO 8 'send 8 data bits MSB first pauseus mtspace 'send space -- space between data pulses IF databyte.7 = 1 Then trans1 CCP1CON = 12 'send zero pauseus mtbit0 CCP1CON = 0 @ rlf _databyte,F GoTo bypassx trans1: CCP1CON = 12 'send one pauseus mtbit1 CCP1CON = 0 @ rlf _databyte,F bypassx: Next bit_counter Return '----------------------------------------------------------- send_byte_short: 'send 6 bits (databyte) For bit_counter = 1 TO 6 'send 6 data bits MSB first pauseus mtspace 'send space IF databyte.5 = 1 Then trans1_short 'read from bit 5 CCP1CON = 12 'send zero pauseus mtbit0 CCP1CON = 0 @ rlf _databyte,F 'databyte << 1 GoTo bypassx_short trans1_short: CCP1CON = 12 'send one pauseus mtbit1 CCP1CON = 0 @ rlf _databyte,F bypassx_short: Next bit_counter Return '****************************************************** End |
Автор: | mmapooh [ 28 май 2013, 15:16 ] |
Заголовок сообщения: | Re: Мини модули |
А работает, по крайней мере в протеусе))) оказывается там WDT в настройках отдельно задаётся и задан был не 18 мС, а 18 минут. проверю в железе и есть прошивка для цикличного респауна на 5,10,15,20,25,30,45,60 минут ) |
Автор: | mmapooh [ 28 май 2013, 15:46 ] |
Заголовок сообщения: | Re: Мини модули |
да и вот что интересно . Все мини модули делаются из интересов личных и клуба, а у кого какие идеи по гаджетам и интерактивным устройствам для игры есть и кто какие использует? |
Страница 3 из 3 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |