Proton Lite error: max 50 lines
Special Member
Heb je proton lite, dan is het te groot ja. En als je bijv. de laatste vier songs weg haalt?
MGP heeft er een hex file van gemaakt, misschien kun je die gebruiken?
Special Member
Als je al die symbols weglaat, en de waardes direct inklopt, wordt de code al 36 regels korter...
Of Mikrobasic gebruiken, in demomode 4k code toegestaan...
Golden Member
Op 27 juli 2019 15:52:33 schreef Bavelt:
Ik zie dat deze configuratie een kristal van 10Mhz verlangt. Die heb ik even niet.Wel eentje van 20Mhz en een heleboel van 32.768 Khz
Kunnen die ook worden gebruikt?Dan moet er vast eea worden gewijzigd in de frequenties?
Of wellicht even voor de test met interne oscillator?
Special Member
Op 27 juli 2019 16:15:47 schreef Bavelt:
Of wellicht even voor de test met interne oscillator?
Dat kan, maar daar wordt je code niet korter van.
Special Member
Tellen symbols dan niet mee als regel?
Special Member
Op 27 juli 2019 16:21:01 schreef Arco:
Tellen symbols dan niet mee als regel?
Ja natuurlijk, maar ik had het tegen de TS. Die wil de interne klok gebruiken in plaats van het kristal.
Ik heb hier de hex file wel, maar ik krijg hem niet gekopieerd.
Op 27 juli 2019 15:58:03 schreef Bavelt:
Proton Lite error: max 50 lines
Maak er dan 1 song van
[Bericht gewijzigd door MGP op zaterdag 27 juli 2019 16:37:44 (72%)
Special Member
Ik heb het uit de pickit2 gehaald, is alleen voor een 16F627A. De 16f628A heb ik niet, maar misschien kun je er iets mee.
Hex file.
000 28C5 3080 00A1 30FE 2058 3001 2058 3075
008 00A5 3030 28AD 00AB 1106 1186 1683 1106
010 1186 300F 0586 1283 082B 18A0 2835 303E
018 00A5 3080 20AD 3033 00AA 2049 3013 00A5
020 3088 20AD 2049 3064 20AC 2049 3064 20AC
028 3022 00AA 2049 3028 2034 300C 2034 3006
030 2034 14A0 082B 2835 1420 00AA 1C20 2843
038 1186 3C03 1C03 2848 2048 3007 00A5 30D0
040 20AD 1403 0008 1420 3CFE 1903 2856 1586
048 1C20 1020 1506 300F 0586 082A 39F0 0486
050 1106 0EAA 1820 2849 3032 20AC 082B 28C1
058 1BA1 280B 0008 00A7 0822 0084 0923 1784
060 0580 1384 08A7 1903 2884 30F0 00A9 0826
068 3880 00A8 30F0 03A9 1903 00A9 1903 03A7
070 1903 2884 301B 20AC 208F 0103 182C 0823
078 1FA6 0823 08A6 1903 0103 0FA8 2881 0680
080 2867 2882 0000 286A 0823 1784 0480 28C1
088 1783 0180 0A84 3EFF 1D03 2889 28C1 082D
090 042C 1903 0AAC 3080 1A2C 06AD 192C 06AD
098 18AC 06AD 0D2D 0DAC 0DAD 082C 28C1 01A7
0A0 00A6 30FF 07A6 1C03 07A7 1C03 28C1 3003
0A8 00A5 30E4 20AD 28A1 01A5 3EF6 00A4 09A5
0B0 1C03 28B8 30FE 0000 07A4 1803 28B3 07A4
0B8 0000 0FA5 28B2 0000 1824 28BE 1824 28C0
0C0 0008 1383 1283 1303 0008 0183 01A0 3007
0C8 009F 3020 0084 3060 2089 30A0 0084 3050
0D0 2089 3020 0084 3030 2088 2001 3001 00A7
0D8 30F4 20A0 3020 0084 3060 2089 30A0 0084
0E0 3050 2089 3020 0084 3030 2088 0185 303F
0E8 1683 0085 1283 0186 1683 0186 1283 1805
0F0 28F2 28EE 3006 00A2 3001 00A3 3061 00A6
0F8 3050 205B 306C 00A6 3050 205B 3069 00A6
100 3014 205B 3068 00A6 3014 205B 3065 00A6
108 3014 205B 3071 00A6 3050 205B 306C 00A6
110 3050 205B 3069 00A6 3014 205B 3068 00A6
118 3014 205B 3065 00A6 3014 205B 3071 00A6
120 3050 205B 306C 00A6 3050 205B 3069 00A6
128 3014 205B 3068 00A6 3014 205B 3069 00A6
130 3014 205B 3065 00A6 3050 205B 3003 00A7
138 30E8 20A0 293B 3006 00A2 3001 00A3 305E
140 00A6 3050 205B 01A6 3002 205B 305E 00A6
148 3046 205B 01A6 3002 205B 305E 00A6 300A
150 205B 01A6 3002 205B 305E 00A6 3050 205B
158 3063 00A6 303C 205B 01A6 3002 205B 3061
160 00A6 300A 205B 01A6 3002 205B 3061 00A6
168 303C 205B 01A6 3005 205B 305E 00A6 300A
170 205B 01A6 3002 205B 305E 00A6 3032 205B
178 01A6 3002 205B 305C 00A6 3014 205B 01A6
180 3001 205B 305E 00A6 3028 205B 3003 00A7
188 30E8 20A0 298B 3006 00A2 3001 00A3 306F
190 00A6 3028 205B 01A6 3002 205B 3069 00A6
198 3014 205B 01A6 3002 205B 3069 00A6 3014
1A0 205B 01A6 3005 205B 306C 00A6 3032 205B
1A8 01A6 3003 205B 3069 00A6 301E 205B 01A6
1B0 3028 205B 306E 00A6 3028 205B 306F 00A6
1B8 3032 205B 3003 00A7 30E8 20A0 29BF 3006
1C0 00A2 3001 00A3 306A 00A6 3014 205B 3070
1C8 00A6 3014 205B 3073 00A6 300F 205B 3075
1D0 00A6 301E 205B 01A6 3005 205B 3073 00A6
1D8 3014 205B 3075 00A6 304B 205B 3003 00A7
1E0 30E8 20A0 29E3 3006 00A2 3001 00A3 3069
1E8 00A6 301E 205B 01A6 300A 205B 3069 00A6
1F0 301E 205B 01A6 300A 205B 3069 00A6 3050
1F8 205B 01A6 3003 205B 3069 00A6 3014 205B
200 3068 00A6 301E 205B 3065 00A6 3014 205B
208 3068 00A6 301E 205B 3069 00A6 3014 205B
210 306C 00A6 301E 205B 01A6 3005 205B 3069
218 00A6 300A 205B 306E 00A6 301E 205B 01A6
220 300F 205B 306E 00A6 301E 205B 01A6 300F
228 205B 306E 00A6 3050 205B 3003 00A7 30E8
230 20A0 28EE 2A32 2A33 3FFF 3FFF 3FFF 3FFF
238 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
240 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
248 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
250 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
258 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
260 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
268 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
270 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
278 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
280 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
288 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
290 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
298 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2A0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2A8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2B0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2B8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2C0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2C8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2D0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2D8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2E0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2E8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2F0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
2F8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
300 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
308 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
310 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
318 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
320 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
328 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
330 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
338 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
340 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
348 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
350 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
358 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
360 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
368 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
370 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
378 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
380 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
388 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
390 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
398 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3A0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3A8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3B0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3B8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3C0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3C8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3D0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3D8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3E0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3E8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3F0 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3F8 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
Hier heb je <50 lines met 1 song om te testen en met internal oscillator
Hopelijk staan er geen fouten bij de interne oscillator aanwijzing en je kunt altijd nog symbolen wissen, noten die in die song niet gebruikt worden.
Special Member
Zo zit je ook ruim onder de 50 (zonder symbols)
Device 16F628A ; Processor type
Xtal 10 ; Cristal 10Mhz
Config HS_OSC, WDT_OFF, PWRTE_ON, MCLRE_OFF, BODEN_OFF, LVP_OFF, CP_OFF
All_Digital true ; Alle poorten digitaal
DelayMS 500 ; Pauze 0.5 sec
Clear ; Wis geheugen
PORTA = %000000 ; Maak poort A laag
TRISA = %111111 ; Poort_A I/O
PORTB = %000000 ; Maak poort B laag
TRISB = %000000 ; Poort_B I/O
;------------------------------------------------------------------------------------------------------
; SONG1:STARWARS, SONG2:DEATH MARCH, SONG3:SHAVE AND A HAIRCUT, SONG4:CHARGE, SONG5:HEART AND SOUL
;------------------------------------------------------------------------------------------------------
START:
If PORTA.0 = 1 Then GoTo SONG1
GoTo START
SONG1:
Sound PORTB.0,[97,80,108,80,105,20,104,20,101,20,113,80,108,80,105,20,104,20,101,20,113,80,108,80,105,20,104,20,105,20,101,80]
DelayMS 1000
GoTo SONG2
SONG2:
Sound PORTB.0,[94,80,0,2,94,70,0,2,94,10,0,2,94,80,99,60,0,2,97,10,0,2,97,60,0,5,94,10,0,2,94,50,0,2,92,20,0,1,94,40]
DelayMS 1000
GoTo SONG3
SONG3:
Sound PORTB.0,[111,40,0,2,105,20,0,2,105,20,0,5,108,50,0,3,105,30,0,40,110,40,111,50]
DelayMS 1000
GoTo SONG4
SONG4:
Sound PORTB.0,[106,20,112,20,115,15,117,30,0,5,115,20,117,75]
DelayMS 1000
GoTo SONG5
SONG5:
Sound PORTB.0,[105,30,0,10,105,30,0,10,105,80,0,3,105,20,104,30,101,20,104,30,105,20,108,30,0,5,105,10,110,30,0,15,110,30,0,15,110,80]
DelayMS 1000
GoTo START
End
Golden Member
Het werkt! Zij het dat het outputsignaal tamelijk zwak is, maar dat zal vast ook wel zijn in te stellen.
In het oorspronkelijke programma kwam er met een tor als versterker een goed signaal uit het luidsprekertje.
Even een klein uitstapje (wellicht ander topic):
Ik moet iedere keer als ik MPLAB iDE start de checkbox
"Power Circuit from tool" aanvinken. Anders werkt het niet met PICkit 3.
Ik heb daarop gezocht en een 'user environment' aangemaakt, deze laadt bij starten MPLAB, maar de checkbox blijft uitgevinkt.
Dus opnieuw aanvinken steeds.
Hierdoor kan ik niet rechtstreeks vanuit Proton Compileren én programmeren maar moet het steeds apart. Kan natuurlijk wel, maar is niet handig.
Wellicht een tip?
Op 28 juli 2019 15:13:36 schreef Bavelt:
Het werkt! Zij het dat het outputsignaal tamelijk zwak is, maar dat zal vast ook wel zijn in te stellen.
In het oorspronkelijke programma kwam er met een tor als versterker een goed signaal uit het luidsprekertje.
Altijd een tor gebruiken zoals in uw eerste schema dan speelt de impedantie van de luidspreker niet zo'n grote rol, mogelijks is de stroom hoger dan toegelaten van de pic outputpin zonder tor.
Ik gebruik het standalone Pickit2 programma en moet daardoor ook 2 handelingen verrichten, maar als beiden open staan is dat niet zo'n probleem voor mij.
Special Member
Ik gebruik het standalone Pickit2 programma en moet daardoor ook 2 handelingen verrichten...
Hoeft niet, kan simpeler:
- met toets op pickit2 zelf, of
- Auto import hex + Write device functie
Bij de laatste optie hoef je zelfs helemaal niks te doen. Als je de file compileert, wordt de hexfile automatisch geladen en geprogrammeerd...
Ik wist niet dat de nieuwe hexfile automatisch wordt ingeladen, maar ik gebruik die niet zoveel, gebruik nog veel de Wisp programmer.
Die laatste heeft wel moeite om een 16F88 te programmeren dan wordt de pickit gebruikt.
Special Member
Als je alleen de 'Write' toets drukt in het Pickit programma wordt de hexfile ook automatisch ingeladen (indien er een nieuwere beschikbaar is)
De volgende keer ga ik erop letten of dat idd zo is, zou wel makkelijk zijn
Golden Member
Soms kun je zo heerlijk over dingen heen kijken...
Waarom blijft onderstaand programma het geluid produceren (Sound instructie) onafhankelijk van de waarde van S1, terwijl die wél in de voorwaarde is opgenomen?
DEVICE 16F628A ; Processor type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
XTAL 4
ALL_DIGITAL true ; Alle poorten digitaal
SYMBOL PIN = PORTB.0 ; Sound - pin
SYMBOL S1 = PORTA.0 ; Schakelaar
SYMBOL R = 0
SYMBOL C = 82
SYMBOL Db0 = 85
SYMBOL D = 87
SYMBOL Eb = 89
SYMBOL E = 92
SYMBOL F = 94
SYMBOL Gb = 95
SYMBOL G = 97
SYMBOL Ab1 = 99
SYMBOL A1 = 73
SYMBOL Bb1 = 76
SYMBOL BE1 = 79
SYMBOL C1 = 82
SYMBOL Db1 = 85
SYMBOL D1 = 87
SYMBOL Eb1 = 89
SYMBOL E1 = 92
SYMBOL F1 = 94
SYMBOL Gb1 = 95
SYMBOL G1 = 97
SYMBOL Ab2 = 99
SYMBOL A2 = 101
SYMBOL Bb2 = 102
SYMBOL BE2 = 104
SYMBOL C2 = 105
SYMBOL D2 = 108
SYMBOL E2 = 110
SYMBOL F2 = 111
SYMBOL Gb2 = 112
SYMBOL G2 = 113
SYMBOL Bm3 = 116
SYMBOL C3 = 117
SYMBOL D3 = 118
PORTA = %11111111 ; Maak alle poorten A Hoog
TRISA = %11111111
; 76543210
PORTB = %00000000 ; Maak alle poorten B Laag
TRISB = %00000000
S1 = 1 'voor alle zekerheid op 1 gezet
START:
IF S1 = 0 THEN GOTO SONG1
GOTO START
SONG1:
SOUND PIN,[G,80,D2,80,C2,20,BE2,20,A2,20,G2,80,D2,80,C2,20,BE2,20,A2,20,G2,80,D2,80,C2,20,BE2,20,C2,20,A2,80]
DELAYMS 2500
S1 = 1
GOTO START
END
Special Member
Heb je wel een pull-up weerstand aan de schakelaar?
Ook:
S1 = 1
kan niet; het is een input, geen output
[Bericht gewijzigd door Arco op dinsdag 30 juli 2019 00:17:24 (41%)
Golden Member
Er zit een pull-up van 4k7 naar de VDD
Het statement S1 = 1 hoort er idd niet in, maar die heb ik erin gezet omdat het niet werkte.
Special Member
Ik weet niet hoe de compiler werkt, maar je hebt kans dat die PORTA.0 van input naar output zet na het zien van 'S1 = 1'
(ik hou niet van 'zelfdenkende' compilers; dat doe ik wel...)
Golden Member
Ik heb S1 = 1 weggehaald.
Maar het blijft raar dat de 'loop' gewoon blijft lopen.
Ik heb met een voltmeter de waarde op PortA.0 gemeten, die is echt hoog.
Waarom gaat hij dan toch naar START:
rara...
DEVICE 16F628A ; Processor type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
XTAL 4
ALL_DIGITAL true ; Alle poorten digitaal
SYMBOL PIN = PORTB.0 ; Sound - pin
SYMBOL S1 = PORTA.0 ; Schakelaar
SYMBOL R = 0
SYMBOL C = 82
SYMBOL Db0 = 85
SYMBOL D = 87
SYMBOL Eb = 89
SYMBOL E = 92
SYMBOL F = 94
SYMBOL Gb = 95
SYMBOL G = 97
SYMBOL Ab1 = 99
SYMBOL A1 = 73
SYMBOL Bb1 = 76
SYMBOL BE1 = 79
SYMBOL C1 = 82
SYMBOL Db1 = 85
SYMBOL D1 = 87
SYMBOL Eb1 = 89
SYMBOL E1 = 92
SYMBOL F1 = 94
SYMBOL Gb1 = 95
SYMBOL G1 = 97
SYMBOL Ab2 = 99
SYMBOL A2 = 101
SYMBOL Bb2 = 102
SYMBOL BE2 = 104
SYMBOL C2 = 105
SYMBOL D2 = 108
SYMBOL E2 = 110
SYMBOL F2 = 111
SYMBOL Gb2 = 112
SYMBOL G2 = 113
SYMBOL Bm3 = 116
SYMBOL C3 = 117
SYMBOL D3 = 118
PORTA = %11111111 ; Maak alle poorten A Hoog
TRISA = %11111111
; 76543210
PORTB = %00000000 ; Maak alle poorten B Laag
TRISB = %00000000
START:
IF S1 = 0 THEN GOTO SONG1
GOTO START
SONG1:
SOUND PIN,[G,80,D2,80,C2,20,BE2,20,A2,20,G2,80,D2,80,C2,20,BE2,20,A2,20,G2,80,D2,80,C2,20,BE2,20,C2,20,A2,80]
DELAYMS 2500
GOTO START
Special Member
Ik zou voor de zekerheid ook de comparators uitzetten (CMCON = 0x07)
Op 30 juli 2019 01:19:55 schreef Bavelt:
Ik heb S1 = 1 weggehaald.
Dat zegt niks als je er niet bijverteld hoe je de ingang hebt aangesloten, ligt die nu aan de GND of aan de VCC.
Los laten hangen is geen optie.
Special Member
Op 29 juli 2019 23:43:26 schreef Bavelt:
Soms kun je zo heerlijk over dingen heen kijken...
Zeker.
Dit staat niet goed zo.
PORTA = %11111111
TRISA = %11111111
Moet dit zijn.
PORTA = %00000000
TRISA = %11111111