Hi,
I try the lcd example give with Easypic6 (for MikroCPro).
It run correctly with PIC16F887.
when i delete the 4 lines including the configuration of AN pins and Comparators for the PIC16F887, the built and program run correctly with the PIC16F84 but the debugger never start... (same result using windows XP or Vista)
The blue led (PGR-ICD) blink in Easypic6 board and never stop..
Is the Debugger freeze?
Did i need some switches configuration on Easypic6 to use the PIC16F84 compare to the PIC16F887?
rmq: I use a power supply for Easypic6..
thanks for any help..
Easypic6_pb with lcd example
I try later the 16F84...
For the moment i continue my project with 16F887 and i have a lot of problems with the LCD.
For my project I need 13 different screens.
Because of that i need to find a solution to reduce the use of the Ram Pic using variables for the common strings on the display.
1) I succed now but i have now those messages after the build program:
examples:
40 1511 IRP bit must be set manually for indirect access to 'LgnLcd' variable Essai_Lcd_V0.02.c
0 1511 IRP bit must be set manually for indirect access to '?lstr5_Essai_Lcd_V0' variable Essai_Lcd_V0.02.c
45 1511 IRP bit must be set manually for indirect access to 'str5' variable Essai_Lcd_V0.02.c
what means those messages?
2) to test my screens, i use a swith/case command and i increment the number of the screen. I have big problems:
a)I never see the good text in my screens.
b)I see or an half screen or the strings of one over screen or variables messages
c)text is not at the good position
Before sending my text for each screen to the LCD I do :
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_RETURN_HOME);
Delay_ms(1000);
I test with the direct command Lcd_Out(1,1,"Nourrissage") or using a variable Lcd_Out(1,1,LgnLcd)
and the results are the sames...
Why I don't have the good message in my LCD?
How could I now the Ram space use for LCD text to see what append exactly in the messages?
For the moment i continue my project with 16F887 and i have a lot of problems with the LCD.
For my project I need 13 different screens.
Because of that i need to find a solution to reduce the use of the Ram Pic using variables for the common strings on the display.
1) I succed now but i have now those messages after the build program:
examples:
40 1511 IRP bit must be set manually for indirect access to 'LgnLcd' variable Essai_Lcd_V0.02.c
0 1511 IRP bit must be set manually for indirect access to '?lstr5_Essai_Lcd_V0' variable Essai_Lcd_V0.02.c
45 1511 IRP bit must be set manually for indirect access to 'str5' variable Essai_Lcd_V0.02.c
what means those messages?
2) to test my screens, i use a swith/case command and i increment the number of the screen. I have big problems:
a)I never see the good text in my screens.
b)I see or an half screen or the strings of one over screen or variables messages
c)text is not at the good position
Before sending my text for each screen to the LCD I do :
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_RETURN_HOME);
Delay_ms(1000);
I test with the direct command Lcd_Out(1,1,"Nourrissage") or using a variable Lcd_Out(1,1,LgnLcd)
and the results are the sames...
Why I don't have the good message in my LCD?
How could I now the Ram space use for LCD text to see what append exactly in the messages?
- nikola.kostic
- mikroElektronika team
- Posts: 433
- Joined: 11 Aug 2009 12:12
PIC16F84 doesn't have in-circuit debugger. You may consider PIC16F88 if you need that functionality.
Regarding error messages you got, in order to use banks 2 & 3 of PIC16, you need to set IRP bit manually to 1 (IRP_bit=1).
Regarding your LCD question, it's hard to say without complete code, however, as you already mentioned IRP bit notification, this is also most probably the cause of your LCD problem.
You can find more about IRP bit and memory organization in your PIC's datasheet.
Regarding error messages you got, in order to use banks 2 & 3 of PIC16, you need to set IRP bit manually to 1 (IRP_bit=1).
Regarding your LCD question, it's hard to say without complete code, however, as you already mentioned IRP bit notification, this is also most probably the cause of your LCD problem.
You can find more about IRP bit and memory organization in your PIC's datasheet.
Thanks for the news about Pic16F88.
For my LCD problem i find one over solution (i don't know if it's the good solution but it works)...
For the IRP, i don't understand (sorry i begin in Pic programmation).
the errors give in example are just manupilation of strings before sending them to LCD commands.
for that i don't understand the relation with IRP errors...
And how could you know that that this errors concern bank 2 and 3?
For my LCD problem i find one over solution (i don't know if it's the good solution but it works)...
For the IRP, i don't understand (sorry i begin in Pic programmation).
the errors give in example are just manupilation of strings before sending them to LCD commands.
for that i don't understand the relation with IRP errors...
And how could you know that that this errors concern bank 2 and 3?
- nikola.kostic
- mikroElektronika team
- Posts: 433
- Joined: 11 Aug 2009 12:12
Please check this page (Indirect Addressing part):bbmicro wrote:For the IRP, i don't understand (sorry i begin in Pic programmation).
the errors give in example are just manupilation of strings before sending them to LCD commands. for that i don't understand the relation with IRP errors...
http://www.mikroe.com/en/books/picbook/2_06chapter.htm
Have you checked the datasheet?And how could you know that that this errors concern bank 2 and 3?
IRP: Register Bank Select bit (used for indirect addressing).
1 = Bank 2, 3
0 = Bank 0, 1