Ik ben al een tijdje bezig met pic processors, maar dat waren voornamelijk kleine projecten. Nu wil ik een klok maken en ik heb het programma al geschreven, maar ik kom uit op 9k aan geheugen. Ik wou een 16f877 gebruiken maar kan dit omdat hij maar 8k program geheugen heeft, of klopt dit niet want in de datasheet staat dat hij 8k x14 aan geheugen heeft maar waarom zetten ze er dan niet gewoon 112k aan geheugen heeft????

Ik weet het, het is nogal een groot bestand, maar als iemand meer info weet dat 8k x 14 dan zou ik het graag willen horen :9:9

Ik wou een 16f877 gebruiken maar kan dit omdat hij maar 8k program geheugen heeft, of klopt dit niet want in de datasheet staat dat hij 8k x14 aan geheugen heeft maar waarom zetten ze er dan niet gewoon 112k aan geheugen heeft???? [/quote]

Hij heeft inderdaad 112k *bits* aan geheugen, maar dat is niet zo interessant. Iedere instructie is 12 bits, dus je kan er 8k instructies in kwijt, basta. En helaas is zijn er geen grotere 14-bit flash PICs. Dus je sult je programma moeten wassen op een hoge temperatuur, of uitwijken naar een 18F452 (16k instructies), maar die is wel van een 'hogere' serie en heeft een wat andere (verbeterde) structuur.

balen. Zal ik toch maar kijken of ik mijn programma iets kan inkorten, want mijn programmer ondersteund geen pic's uit de 18 serie.

iig bedankt voor de reacties

Dat moet dan toch wel een heftige klok worden als je daar 9k aan geheugen voor nodig hebt..(lijkt mij tenminste)

Op 28 december 2002 18:44:04 schreef Wouter SSijm:
Ik ben al een tijdje bezig met pic processors, maar dat waren voornamelijk kleine projecten. Nu wil ik een klok maken en ik heb het programma al geschreven, maar ik kom uit op 9k aan geheugen. Ik wou een 16f877 gebruiken maar kan dit omdat hij maar 8k program geheugen heeft, of klopt dit niet want in de datasheet staat dat hij 8k x14 aan geheugen heeft maar waarom zetten ze er dan niet gewoon 112k aan geheugen heeft????

What The Hell are you doeing?
9k nodig voor alleen een klok?
kijk hier eens voor de basis
loopt nog niet helemaal goed maar daar word aangewerkt
klok

Ik weet het hij is HEEL groot, maar ik zal eens een stukje van het programma laten zien:

 var byte u1 = 0
 var byte u2 = 0
 var byte m1 = 0
 var byte m2 = 0
 const bit l = low
 const bit h = high

 forever loop
 delay_1s ( 60 )
 m1 = m1 + 1
 if m1 == 10 then
 m2 = m2 + 1
 end if
 if m1 == 10 then
 m1 = 0
 end if
 if m2 == 7 then
 u1 = u1 + 1
 end if
 if m2 == 7 then
 m2 = 0
 end if
 if u1 == 10 then
 u2 = u2 + 1
 end if
 if u1 == 10 then
 u1 = 0
 end if
 if u1 == 4 & u2 == 2 then
 u1 = 0
 u2 = 0
 m1 = 0
 m2 = 0
 end if

ik weet niet of dit een beetje te begrijpen is maar dit is eigelijk om het zo maar te noemen de "engine". De rest van de code (waardoor hij zo groot is geworeden dus) staat hier nier bij maar dat is om als m1 bijvoorbeeld 2 is dat de pic dan bij de laaste digit een 2 neerzet. Dit heb ik dus bij alle variabelen moeten doen. Hierdoor is hij zo groot geworden

dit is geen assembler taal
is je hex file zo giganties ?
als je mijn code bekijkt zie je een stukje dat heet checktime
deze doet exact wat jij ook doet in dit stukje code
maar bij mij past die klok toch echt gewoon in een 16f84a
bij het programeren in een andere taal dan de pic heeft ward de data vertaald naar assembler en van assembler naar hex hierbij ontstaat soms nogal wat onzin code omdat een directe vertaling niet mogelijk is hierdoor kan een simpel programma toch heel groot worden

[Bericht gewijzigd door k.p.meinesz op ]