Hi David, Vasile, Thanks for the info.
It is an existing bug apparently. I will have a look at it later, since I still need to fix another issue in jalv25r9 (which is also present in jalv25r8). After some analysis I will register it as a bug on GitHub zo it is at least registered. Not sure if I can solve it but I can have a look. Good that you found a workaround. Kind regards, Rob ________________________________ Van: [email protected] <[email protected]> namens vsurducan <[email protected]> Verzonden: zondag 12 januari 2025 07:03 Aan: [email protected] <[email protected]> Onderwerp: Re: [jallib] Re: Compiler/Parser error ? Hi David, The type of error you report I have seen it over various versions of jal compiler for different situations. Define first, use it after was indeed the cure I found for. However, it looks your interrupt routine does not read any interrupt register to trigger it...Who calls your interrupt routine? As is, it seems to be just a normal routine, perhaps you may delete the "pragma interrupt" and call it from main program with the same functionality. Best. On Sat, Jan 11, 2025, 19:37 David VB <[email protected]<mailto:[email protected]>> wrote: Apparently my answer did not get through.... In the meantime, I think I found something: I had a CASE OF statement like this: CASE str_display [i_digit] OF I replaced it with: dig = str_display [i_digit] CASE dig OF And that solved it. Don't know why..... Definitions are: var byte i_digit var byte str_display[4] Here is the full (working) procedure in which the CASE...OF is embeddd: (this is due to weird pinout to display, necessary to simplify PCB design) procedure INT_interrupt is pragma interrupt var byte dig ; Every time it's called, this routine : ; - Turns off current digit ; - Loads character to display in next digit and output it on the ports ; - Turns on next digit INTCON_INTF = false ; Turn everything off Seg_g = 0 Seg_d = 0 PORTC = 0b00000000 ; Prepare next digit IF i_digit == 0 then i_digit = 3 else i_digit = i_digit -1 end if dig = str_display [i_digit] IF ((i_digit == 1) | (i_digit == 2)) then ; If it is a digit from 0 to 9 CASE dig OF 0 : BLOCK Seg_d = 1 PORTC = 0b10101110 END BLOCK 1 : PORTC = 0b00001100 2 : BLOCK Seg_g = 1 Seg_d = 1 PORTC = 0b10000110 END BLOCK 3 : BLOCK Seg_g = 1 Seg_d = 1 PORTC = 0b00001110 END BLOCK 4 : BLOCK Seg_g = 1 PORTC = 0b00101100 END BLOCK 5 : BLOCK Seg_g = 1 Seg_d = 1 PORTC = 0b00101010 END BLOCK 6 : BLOCK Seg_g = 1 Seg_d = 1 PORTC = 0b10101010 END BLOCK 7 : PORTC = 0b00001110 8 : BLOCK Seg_g = 1 Seg_d = 1 PORTC = 0b10101110 END BLOCK 9 : BLOCK Seg_g = 1 Seg_d = 1 PORTC = 0b00101110 END BLOCK END CASE END IF IF (i_digit == 0) | (i_digit == 3) then ; if Bargraph with values from 40 (one bar - Seg a) to 100 (7 bars - Seg a to g) BLOCK if dig > 39 then BLOCK Seg_a = 1 if dig > 49 then BLOCK Seg_b = 1 if dig > 59 then BLOCK Seg_c = 1 if dig > 69 then BLOCK Seg_d = 1 if dig > 79 then BLOCK Seg_e = 1 if dig > 89 then BLOCK Seg_f = 1 if dig > 99 then Seg_g = 1 end if END BLOCK end if END BLOCK end if END BLOCK end if END BLOCK end if END BLOCK end if END BLOCK end if END BLOCK END IF ; Turn ON new digit case i_digit of 3 : Left_Bar = TRUE ; digit 3 2 : Left_Dig = TRUE ; digit 2 1 : Right_Dig = TRUE ; digit 1 0 : Right_Bar = TRUE ; digit 0 end case end procedure Le samedi 11 janvier 2025 à 17:06:27 UTC+1, David VB a écrit : Hi there, While trying to compile a first skeleton of a new program (some definitions, initialisations and declarations) with an (for now) empty forever loop, I bump into this strange error: It seems like a first pass is ok and that no syntax errors remain, put then I receive this: Compilation started at :11-01-25 16:59:42 jal jalv25r9 (compiled Jan 4 2025) generating p-code 1236 tokens, 294280 chars; 6401 lines; 12 files generating PIC code pass 1 Assertion failed! [Error] (jalv2_64.exe.jal) [Line 0] File: pic_op.c, Line 3143 Expression: !value_is_const(val1) Compiler CommandLine: Y:\== TOOLS\Jallib1.9\compiler\jalv2_64.exe -Wno-all -s "Y:\== TOOLS\Jallib1.9\lib;Y:\== TOOLS\PICjal\JAL\Libraries;Y:\== TOOLS\JalLibWorkspace\lib" "Y:\== PROJETS EN COURS\NAS\Ventilos\Ventilos2\Ventilos2.jal" Errors :0 Warnings :0 Code :0/100 Data:0/100 Hardware Stack : 0/100 Software Stack :0 What does this mean ? Thanks for your 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]<mailto:[email protected]>. To view this discussion visit https://groups.google.com/d/msgid/jallib/ba9659fa-d8c8-4ed8-b266-3b3ca200c193n%40googlegroups.com<https://groups.google.com/d/msgid/jallib/ba9659fa-d8c8-4ed8-b266-3b3ca200c193n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- 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]<mailto:[email protected]>. To view this discussion visit https://groups.google.com/d/msgid/jallib/CAM%2Bj4qs1p_Rz9cHm3SRA6n9zNpfYMTQd4jLXh2p7kKqNFjAORg%40mail.gmail.com<https://groups.google.com/d/msgid/jallib/CAM%2Bj4qs1p_Rz9cHm3SRA6n9zNpfYMTQd4jLXh2p7kKqNFjAORg%40mail.gmail.com?utm_medium=email&utm_source=footer>. -- 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 visit https://groups.google.com/d/msgid/jallib/AM7PR02MB6098C8DE2DC6A66F8C095C8DE61E2%40AM7PR02MB6098.eurprd02.prod.outlook.com.
