Shock Media

Navigatie

Bytes uitspugen op 2 poorten in JAL

Forum > Software & Interfacing > Bytes uitspugen op 2 poorten in JAL
Naam Bericht
muddy

Hoi,

voor een projectje wil ik een 16F877A 2 8-bit signalen laten uitspugen. De bits programmeer ik letterlijk in. Het lukt me alleen niet echt. De bytes heb ik al voor me liggen, en varieren van 0 tot 255.
Welke poorten moet ik gebruiken?
Ik dacht aan de volgende code, maar is die goed?
Ik wil (even voor het voorbeeld) poort B laten switchen tussen 65 en 129, en poort c tussen 5 en 129 met een frequentie van 1Hz

include 17f877a_20
include jlib
port_b_direction = output
port_c_direction = output

forever loop
port_b = 65
port_c = 5
delay_100ms( 5 )
port_b = 129
port_c = 129
delay_100ms( 5 )
end loop


Of kan ik het beter zo doen:
forever loop
port_b = 0b_0100_0000
port_c = 0b_0000_0100
delay_100ms( 5 )
port_b = 0b_1000_0000
port_c = 0b_1000_0000
delay_100ms( 5 )
end loop

Wie kan me verder helpen?
Het is uiteindelijk de bedoeling dat iedere poort aan een 8bit DAC komt, en dat er dan een X en Y coördinaat uitkomt.
Is nog steeds (onderhand 1,5 jaar) bezig met de laser: alle fouten zijn nu opgespoord
Frits Kieftenbelt
Honourable member

Maakt volgens mij geen reet niets uit.
Alleen is natuurlijk 129 in binair 0b_1000_0001
Voor 5 0b_0000_0101 en voor 65 0b_0100_0001.
Ohm sweet Ohm l www.picbasic.nl
muddy

Oke bedankt. Maar op deze manier (mits ik de DAC enable) komt er een analoog signaaltje uit?
Is nog steeds (onderhand 1,5 jaar) bezig met de laser: alle fouten zijn nu opgespoord
duffel

Ik ben niet zeker wat je hier wilt maar vermoed dat je een analoge spanning uit je pic wil sturen. Of wil je toch een 1 Hz PWM signaal uit hebben?

Een PIC heeft geen DAC enkel een PWM. Je kan met een PWM en een laagdoorlaat (RC netwerkje) filter wel een redelijke DAC maken. Hier zijn meerdere voorbeelden van te vinden.
http://ww1.microchip.com/downloads/en/AppNotes/00538c.pdf
http://ww1.microchip.com/downloads/en/AppNotes/00655a.pdf
Twee appnotes van Microchip hoe dit te doen.
muddy

Ik wil de pic twee externe dac's laten aasturen. PIC16F877A en DAC0832 (8 bit).
Is nog steeds (onderhand 1,5 jaar) bezig met de laser: alle fouten zijn nu opgespoord
duffel

De logica die je gebruikt lijkt me goed. Ik vermoed dat je syntax fouten maakt of er missen declaraties. Kan je de broncode posten?

In ieder geval in mijn libraries (uit het starterpack van Bert) wordt de volledige poort als PORTA en niet PORT_A gebruikt.

port_b_direction = output: dit heb ik nog nooit zo gebruikt. In de JAL manual worden beide in een voorbeeld als volgt gedaan:

_TRISB = 0b_0000_0000 -- All PORTB output
PORTB = 0b_0001_0001 -- Set b4 and b0

In de Bert libraries staat _TRISB echter als TRISB zonder streepje er voor. Verwarrend maar check hoe de poort en tris in je library gedefinieerd zijn.
muddy

Ik heb hier een handleiding van zo'n 100 pagina's liggen, en daar staat het wel zo in. Maar de handleiding kan ook fout zijn... Op voti.nl staat ook nog wat, zal dat eens doorlezen.

Probleem is nu dat mijn pc de programmer niet wil herkennen
Is nog steeds (onderhand 1,5 jaar) bezig met de laser: alle fouten zijn nu opgespoord
duffel

Ik ga er van uit dat de handleiding niet fout is. De handleiding is echter op een welbepaalde library gebaseerd en deze hoeft niet dezelfde naming conventies te volgen als de library die jij of ik gebruiken.

Jaledit geeft in de linkerkolom een lijst met de includes, procedures, functions enz. Hier vind je de schrijfwijze die in jou libraries gebruikt is makkelijk terug.

Wat betreft de Voti site let op dat je Jal 0.4 en 2.0 niet door elkaar haalt. Ik heb zelf nooit met 0.4 gewerkt maar er zouden verschillen zijn.

De progger die niet herkent wordt doet het frustratie niveau natuurlijk ook geen goed als je eigenlijk al met wat anders aan het worstelen was - succes hiermee -
muddy

Ga vandaag mijn TU/e laptop ophalen, probeer ik het daarmee, en anders ga ik een oude laptop uit de kast halen. Zodra dat werkt kan ik gewoon eens een dac erop aansluiten en kijken of er wat leuke analoge waardes uitkomen

Alvast bedankt.
Is nog steeds (onderhand 1,5 jaar) bezig met de laser: alle fouten zijn nu opgespoord
Zoeken in topic