Le samedi 31 août 2019 13:37:59 UTC+2, Gilles BARTHELEMY a écrit : > > Hello, > > I'm trying to use this litlle board => > https://www.microchip.com/DevelopmentTools/ProductDetails/DM164143 > Impossible to figure out why, I can't make it work with hardware > libraries, either for serial or I2C. > > With Serial (both UART 1 and 2): receive correctly but never transmit. > With I2C : program doesn't run at all ! > > BUT ! On the same pins, Software libraries work fine ! > > I tried all option I could find reading the datasheet, with no success... > > I am not able to test on the chip alone (i.e without the developpement > board) but I doubt this is the point. > > Does this MC require the initialization of a special register ? > > Thank you for your help! > > Here is my code: > > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > % > -- % MPLAB xpress > % > -- % Langage JAL 2.4 > % > -- % GBA 08/2019 > % > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > > > include 16f15376 -- target PICmicro > > > pragma target clock 20_000_000 -- oscillator frequency > -- > pragma target OSC HS -- crystal or resonator > pragma target RSTOSC EXT1X -- power-up clock select: > OSC > pragma target CLKOUTEN DISABLED -- no clock output > pragma target FCMEN DISABLED -- no clock monitoring > pragma target CSWEN ENABLED -- allow writing OSCCON1 > NOSC and NDIV > pragma target WDT DISABLED -- watchdog > pragma target BROWNOUT DISABLED -- no brownout reset > pragma target LVP DISABLED -- no low voltage > programming > pragma target MCLR EXTERNAL -- external reset > > > > > include delay > include print -- formatted output library > > > enable_digital_io() > > > TRISD = 0b00000000 -- RD0 => RD7 : sorties > > > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > -- % Déclaration du bus I2C > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > -- I2C io definition > alias i2c_scl is pin_c3 > alias pin_scl_direction is pin_c3_direction > alias i2c_scl_direction is pin_c3_direction > > > alias i2c_sda is pin_c4 > alias pin_sda_direction is pin_c4_direction > alias i2c_sda_direction is pin_c4_direction > > > -- i2c setup > const word _i2c_bus_speed = 1 ; * 100kHz > const bit _i2c_level = true ; i2c levels (not SMB; i2c_hw only) > include i2c_hardware > -- include i2c_software > i2c_initialize() > > > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > -- % FIN Déclaration du bus I2C > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > > > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > -- % Traitement de l'affichage LCD > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > const byte LCD_ROWS = 2 -- 2 lines > const byte LCD_CHARS = 16 -- 16 chars per line > const byte LCD_ADDRESS = 0x7E -- LCD module I2C address > include lcd_hd44780_pcf8574 -- LCD lib with serial interface > lcd_init() -- initialize LCD > lcd_backlight(on) > > > procedure lcd_print_at(byte in line, byte in pos, byte in str1[]) is > line = line - 1 > pos = pos - 1 > lcd_cursor_position(line, pos) > print_string(lcd, str1) > end procedure > > > lcd_print_at(1, 1, "Bienvenue") > > > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > -- % FIN Traitement de l'affichage LCD > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > > > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > -- % Traitement des ports RS232 > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > -- -- Définition des valeurs du port série > alias pin_RX_direction is pin_C7_direction -- Pin 26 for 40 pin DIP > alias pin_RX1_direction is pin_C7_direction > alias pin_TX_direction is pin_C6_direction -- Pin 25 for 40 pin DIP > alias pin_TX1_direction is pin_C6_direction > > > alias Serial_SW_RX_Pin is pin_C7 -- Pin 26 for 40 pin DIP > alias Serial_SW_TX_Pin is pin_C6 -- Pin 25 for 40 pin DIP > pin_RX_direction = INPUT > pin_TX_direction = OUTPUT > > > const USART_HW_Serial = TRUE > const Serial_HW_Baudrate = 9600 > include Serial_Hardware > Serial_HW_Init > > > -- const USART_SW_Serial = TRUE > -- const Serial_SW_Baudrate = 9600 > -- include Serial_Software > -- > -- Serial_SW_Init > > > alias pin_RX2_direction is pin_B7_direction -- Pin 40 for 40 pin DIP > alias pin_TX2_direction is pin_B6_direction -- Pin 39 for 40 pin DIP > pin_RX2_direction = INPUT > pin_TX2_direction = OUTPUT > > > const USART_HW2_Serial = TRUE > const serial_hw2_baudrate = 9600 > include serial_hardware2 > > > serial_hw2_init > > > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > -- % FIN Traitement des ports RS232 > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > > > Alias LED_CLK is Pin_d4 > pin_D4_direction = output -- clock > Alias LED_STB is Pin_d5 > pin_D5_direction = output -- strobe > Alias LED_DAT is Pin_d6 > pin_D6_direction = output -- data > > > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > Procedure Led_Send(Byte*2 In Num) Is > -- > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > > > Var Byte*2 Renum = Num > Var Bit d0 at Renum:0 > > > LED_STB = LOW > > > For 16 Loop > delay_2us > LED_CLK = 0 > delay_1us > LED_DAT = d0 > delay_1us > LED_CLK = 1 > delay_1us > Renum = Renum >> 1 > End Loop > > > LED_STB = HIGH > delay_1us > LED_STB = LOW > > > End Procedure > > > for 4 loop > Led_Send(0b1111111111111111) > delay_1ms(100) > Led_Send(0b0000000000000000) > delay_1ms(100) > end loop > > > var byte strb[1] > var Byte Data_Msg = 0 > > > Forever Loop > > > Led_Send(0b1000000000000000) > delay_1ms(500) > Led_Send(0b0000000000000000) > delay_1ms(500) > strb[0] = 65 > print_string(serial_hw_data, strb) > -- print_string(serial_sw_data, strb) > delay_1ms(10) > > > end loop > > > > > > It works like a charm !! Thank you for this HUGE help ! > >
-- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/ec19537a-d385-464a-b4ac-4e56b9391e2c%40googlegroups.com.
