Beste CO-ers,

Ik heb een probleem. Ik wil graag een LED strip aansturen met een PIC16F628A maar ik wil meer dan 15 leds aansturen dus wil ik de 74HC595 gebruiken.

Ik wil graag met PWM de leds individueel kunnen aansturen.
Ik heb echt heel erg veel gezocht op CO in forums en heel google maar ik kom er gewoon echt niet uit. Het begint me erg te irriteren dat het niet lukt dus heb ik dit topic geopend om jullie hulp te vragen.
Ik programmeer in PICbasic en heb er zelf niet veel kaas van gegeten.

Ik heb van het schuifregister:

Serin aan PORTB.0
Clk aan PORTB.1
Latch aan PORTB.2

In mijn programma wil ik compilen (dit programma is een test voor 3 leds die ik op het schuifregister aan heb gesloten op pin 15, pin 1 en pin 2.

Ik krijg de foutmelding bij het compilen dat commando HIGH een protected keyword is...

Dit is mijn programma:

DEVICE 16F628A CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE
PORTB_PULLUPS off
CLEAR

While 1 = 1

loop:
dim waarde as byte

Symbol ShiftClk = PORTB.1 ;clk pin naar register
Symbol ShiftData = PORTB.2 ; datapin naar register
Symbol ShiftOpslag = PORTB.0 ; opslagpin naar register

waarde = 255

SHOUT PORTB.2, PORTB.1, LSBFIRST, [%10100000] ; 1 = aan 0 = uit (leds)
PORTB.0 = high ; led aan
PWM portb.0, 64, 20 ; led op pwm (64 van de 255)
PORTB.0 = low ; led uit

GOTO loop

wend

END

Ik hoop dat jullie me een voorbeeld kunnen geven of het programma kunnen wijzigen hoe het wel moet, en hoe ik de leds individueel kan aansturen, dus knippereffecten enzo.

Alvast bedankt!

Als ik het zo even snel doorlees, denk ik dat je de werking van een/dit schuifregister nog niet helemaal doorhebt.

Ik zou zeggen....lees nog ff een keer de werking van het schuifregisteren door in de datasheet. Hij is heel makkelijk in gebruik.... maar je moet wel precies doen wat er staat.

Ik heb zoveel gelezen dat ik gek wordt, er staat gewoon téveel informatie in zon datasheet. Ik weet gewoon niet waar ik moet kijken. het lijkt me beter als je het voordoet hoe het wel moet of vertelt wat ik nou fout doe.

Ik ben niet zo een voorstander van het voorzeggen.

Als je vind dat er teveel in staat ben ik het helemaal met je eens. De belangrijkste dingen die je moet weten staan in de timing chart en function table.

Probeer uit te vinden hoe je een 1 of een 0 in je schuifregister zet. Als je dat eenmaal weet.. weet je ook hoe je hem moet doorschuiven.

3 lijnen aantsturen.. op 1 zet je de bitwaarde die je erin wilt hebben. 1 is voor de clock...die zegt wanneer het bitje erin gaat.. en 1 is voor de latch die zegt wanener de bitjes die erin zitten nou op de uitgangen komen..

meer is er niet aan

Het staat er allemaal in. Probeer te zoeken naar een datasheet van philips ik vind die meestal het duidelijkste.

Ik weet wel hoe een schuifregister werkt, maar mijn probleem is altijd hoe ik het moet programmeren in picbasic.. Kunnen jullie niet mijn fouten vertellen of er uit halen? want in die datasheet staat niet hoe ik moet programmeren in picbasic...

Als je dat weet, waarom stuur je dan 20 pulsen naar je storage reg clock pin?

HIGH is een protected keyword.
Je gebruikt hem als een naam:
Het is niet PORTB.0 = HIGH, maar HIGH PORTB.0.

Lees de PIC programmeercursus op picbasic.nl nog eens door (vanaf het begin).
(ik heb niet zoveel tijd dus heb je hele post niet doorgelezen, maar dit zag ik zo even).