hoe kan ik in (proton) basic
een 15 bits waarde SNEL van een 16f628a
naar een 16f877a transporteren,
liefst parallel, beide chips zitten op dezelfde
printplaat ( en kunnen over het zelfde kristal beschikken )
hoe snel moet dat zijn? synchroon serieel genoeg? dan 1 kloklijn en 1 datalijntje.
Anders per nibble (4 bits) besturen, kost je 5 lijntjes.
geef eens wat meer info..
fripster
lampjes
...
Misschien kan je er wat mee:
DIM SerString[6] AS BYTE ' Create a 10-byte array.
STR SerString = "Hello" , 0 ' Fill the array with ASCII
SEROUT PORTB.2 , 2400 , [ STR SerString\5 ] ' Send 5-byte
ontvangen
SERIN PORTB.0 , 2400, [ STR SerString\5 ] ' Fill the first 5-bytes of the array
PRINT AT 2,1, STR SerString\5 ' Display the 5-character string.
antwoord op fripster
mijn 16f877 heeft de broek vol om de wijzer van een "digitale"
toerenteller op peil te houden,
een stukje prog (1 regel)( pulsin....) schijnt in het interne van de 877 iets te veranderen, zodat ik dat niet kan gebruiken.
(de besturing van de meter wordt zeer traag)
deze functie zal een andere pic over moeten nemen,
blijft over dat een getal (van ca 0 tot 32000)
overgebracht moet worden van ééne naar de andere pic.
m.a.w. het hoeft nog niet eens 15 bit te zijn,
maar a=2678 in de ééne pic moet ook weer a=2678 in de andere pic worden.
achteraf denk dat de snelheid niet zo'n probleem is,
die is vaak wel hoog genoeg .
het lijkt me prima om dat serieel te doen zoals 'lampjes' dit al aangaf. Toch moet het zeer wel mogelijk zijn om dit in 1 PIC te doen,maar dan in ASM. Dat is zeer veel sneller dan welke hogere programmeertaal dan ook (zelfs C!)
Aan jou de keus: ASM leren (niet zo moeilijk) of een extra PIC serieel aanknopen.. (ik wist het wel 
Fripster
ik ga voor nog een pic...........
antwoord voor vince:
wijzer is een stepper motor in microstepping
22000 steps per 360 graden (bipolair)
het idiote is, dat in mijn meter besturings prog ,
ik de stepper bestuur met een getal dat ik krijg
door een potmeter uit te lezen
(hierbij het stukje prog)
ADIN_RES 10 ADIN_TAD FRC
ADIN_STIME 10
TRISA.3 = 1 ADCON1 = %10000000
raw = ADIn 3
dit werkt prima en snel,
als ik het bovenstaande vervang door
x = PulsIn PORTD.5 , 0
wil de zaak niet meer, terwijl de pulsen
binnen 10ms liggen,
en om de 200 loops uitgelezen wordt
dus dat is niet een erge belasting
[Bericht gewijzigd door burner op ]
oops..niet goed gelezen
[Bericht gewijzigd door fripster op ]
is het niet makkelijker om met je 15 bits een DAC aan te sturen, en dit naar een servo om te zetten?
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
mischien, maar ik heb de software om mijn
stepper aan te sturen nu klaar,
enkel moet ik nog de "toeren" tellen,
en omzetten naar waardes tussen 0 en 20000