Hallo,

Ik heb mij een 74HC595 aangesloten op een PIC 16F628A.
Heb er even een testprogramma'tje ingeprogrammeerd:

While 1 = 1

SHOut ShiftData, ShiftClk, lsbfirst, [%11111111]
PulsOut ShiftOpslag, 5

DelayMS 500
SHOut ShiftData, ShiftClk, lsbfirst, [%00000000]
PulsOut ShiftOpslag, 5

DelayMS 500

Wend

maar als ik dit programmeer blijven mijn uitgangen dubbel zo lang aan als uit. Heb ik hier iets mis gedaan?
Ook SHOut ShiftData, ShiftClk, lsbfirst, [128] werkt niet (er gebeurt niets)
Zou hier iemand de oorzaak van weten?

Mvg

Het terugspringen van "Wend" naar "While" neemt ook processortijd in beslag.

Op 11 augustus 2009 19:03:58 schreef pros:
Het terugspringen van "Wend" naar "While" neemt ook processortijd in beslag.

mijn uitgang is een halve seconde uit en bijna 2 sec aan.
While wend neemt ook niet zoveel tijd in beslag, of ben ik mis?

Zoveel tijd niet nee :) en als je de tijd nou eens halveerd?

Post het hele programma eens (met CONFIG e.d.)?
En graag tussen CODE tags.


Device 16F628A
Config hs_osc, wdt_off, pwrte_on, lvp_off, mclre_off, boden_off
ALL_DIGITAL TRUE

XTAL 20

PORTB_PULLUPS On


Symbol ShiftClk = PORTB.1
Symbol ShiftData = PORTB.2
Symbol ShiftOpslag = PORTA.0

While 1 = 1

SHOut ShiftData, ShiftClk, lsbfirst, [%11111111]
PulsOut ShiftOpslag, 5

DelayMS 500
SHOut ShiftData, ShiftClk, lsbfirst, [%00000000]
PulsOut ShiftOpslag, 5

DelayMS 500

Wend

End

We hebben nu een prachtige parser voor verschillende talen ;)

[Bericht gewijzigd door Henry S. op (9%)]

heb de schakeling hier gemaakt.


Device 16F627A
Config hs_osc, wdt_off, pwrte_on, lvp_off, mclre_off, boden_off
XTAL 20
ALL_DIGITAL TRUE

;uitgangen 
;        76543210
PORTA = %11111110
PORTB = %11111001

Symbol ShiftClk = PORTB.1
Symbol ShiftData = PORTB.2
Symbol ShiftOpslag = PORTA.0

While 1 = 1

SHOut ShiftData, ShiftClk, lsbfirst, [%11111111]
PulsOut ShiftOpslag, 5

DelayMS 500
SHOut ShiftData, ShiftClk, lsbfirst, [%00000000]
PulsOut ShiftOpslag, 5

DelayMS 500

Wend

End

met die code, ik heb de uitgangen verklaard, en de pullups weg gehaald want die heb je toch niet nodig.
werkt zo prima hier

edit: even die kleurtjes gebruikt. ziet er toch wel beter uit
edit2: http://www.picbasic.org/forum/showthread.php?t=3214 wel leuk om te lezen als je er meer achter elkaar hangt
edit 946: ff het device weer veranderen naar 628. ik had geen 628 dus maar gedaan met een 627. niet dat die het dalijk nog niet doet :P

Hallo,

Ik heb mijn schakeling even op een testbordje gemaakt en hier werkt alles perfect.
Eens ik mijn schakeling gebruik met de telefoonprint slaat alles door elkaar.
Delay tijden kloppen niet, kan geen uitgang afzonderlijk sturen (moet volledige 8-bit sturen).
Heeft dit iets met het programma te maken of zit er een fout in mijn print? Heeft die LED er iets mee te maken die er nog op aangesloten zit?

Mvg

probeer anders een te werken met andere uitgangen?

Met de telefoonprint?
Hebben wij iets gemist?
Mogen wij meer details hoe en waarop je schakeling is opgebouwd?
Zonder extra info ga ik er van uit dat de schakeling zonder poespas op een breadboard is opgebouwd.

Hallo,

sorry voor het late antwoord. Was op reis.

Ik heb dus eerst een 74HC595 op de telefoonprint aangesloten zoals aangegeven was in de cursus en dat werkte niet zo goed.
Ik heb dan eens een 74HC595 op een breadboard aangesloten met een PIC 16F628A en dan werkte alles perfect.

Moet ik iets bijzonders programmeren om het met de telefoonprint te gebruiken?

Is het dan toch niet het probleem dat er tussendoor nog iets anders gebeurd om met de telefoonlijn te communiceren of is de code een paar posts terug echt alles?

Als je met een 595 (of ander shiftregister) werkt kun je wel degelijk je poorten per pin besturen, maar je moet altijd wel de hele 8 bits er in sturen.
Je zult dus een schaduwregister (variabele) moeten bijhouden waarin je elke pin vastlegt en elke keer dat er iets wijzigt het hele byte versturen.

Op 21 augustus 2009 18:21:56 schreef teunhaperen:
Is het dan toch niet het probleem dat er tussendoor nog iets anders gebeurd om met de telefoonlijn te communiceren of is de code een paar posts terug echt alles?

Heb enkel bovenstaande code geprogrammeerd.
Het programma houd zich met niets anders bezig

Probeer het volgende eens:


DEVICE 16F628A
CONFIG hs_osc, wdt_off, pwrte_on, lvp_off, mclre_off, boden_off
XTAL 20
ALL_DIGITAL TRUE
 
;uitgangen 
;        76543210
PORTA = %00000000
PORTB = %00000000
TRISA = %11111110
TRISB = %11111001
 
SYMBOL ShiftOpslag = PORTA.0
SYMBOL ShiftClk    = PORTB.1
SYMBOL ShiftData   = PORTB.2


;Hoofdprogramma 
WHILE 1 = 1
  SHOUT ShiftData, ShiftClk, LSBFIRST, [%11111111]
  ShiftOpslag = 1
  DELAYMS 5
  ShiftOpslag = 0
 
  DELAYMS 500

  SHOUT ShiftData, ShiftClk, LSBFIRST, [%00000000]
  ShiftOpslag = 1
  DELAYMS 5
  ShiftOpslag = 0 

  DELAYMS 500
WEND 

_________________________________________________________

@Moderators:
Ik ben zeer positief over de kleuren syntax van CircuitsOnline.
Het blijft echter wennen dat de kleuren verschillen met die van picbasic.nl.
Het zou mooi zijn als dit gelijk was aan elkaar of dat ieder zijn eigen kleuren kan instellen middels zijn persoonlijke instellingen/cookies.

ik zie dat die code die ik het gepost gebruikt is dus weer even opletten met de 16f627

natuurlijk met de nodige toevoegingen...

[Bericht gewijzigd door JesperR op (19%)]

@ Frits

Ziet er goed uit met dit testprogje.
Zal dus waarschijnlijk aan die ShiftOpslag liggen.|:(
Zal nog even wat andere dingen programmeren om te testen.

het probleem van Faithless in het eerste progje is waarschijnlijk

PulsOut ShiftOpslag, 5

In de handleiding van Proton staat:

Notes
The resolution of PULSOUT is dependent upon th oscillator frequency. If a 4MHx oscillator is used, the Period of the generated pulse will be in 10us increments. !!!If a 20MHz oscillator is used, Period will have a 2us resolution.!!! Declaring an XTAL value has no effect on PULSOUT. The resolution always changes with the actual oscillator speed.

dit wil volgens mij zeggen dat in het eerste programma van Faithless de periode maar (5 * 2us =) 10µs duurt. Dit is waarschijnlijk veel te snel.

Dat kan, maar hoeft niet per se.
De TRIS en PORT instelling was ook niet helemaal zoals het hoorde.
Grote kans dat PULSOUT nu (ook) wel werkt.

Lijkt mij niet dat 10us te snel is, die schuifregs moeten zijn 10Mhz iirc.

Op 21 augustus 2009 20:50:57 schreef teunhaperen:
het probleem van Faithless in het eerste progje is waarschijnlijk

PulsOut ShiftOpslag, 5

In de handleiding van Proton staat:
[...]

dit wil volgens mij zeggen dat in het eerste programma van Faithless de periode maar (5 * 2us =) 10µs duurt. Dit is waarschijnlijk veel te snel.

nee hoor, het werkte hier gewoon goed met pulsout

Heb het even geprobeerd met PULSOUT. Maar als ik 5 invul kan ik het signaal met mijn 20Mhz scoop niet vinden. Ik kan hem wel vinden maar mijn scoop krijgt het pulsje niet goed getriggerd. Als ik 500000 invul kom ik ongeveer op 1 sec uit.

[Bericht gewijzigd door teunhaperen op (21%)]