hallo,
ik heb een vraag je.
ik zoek een code waarmee je serout bitnummer op een lcd schermpje kan laten zie,
ik heb zelf al wat geschreven maar ik krijg het niet voor elkaar de serout datacode die wordt verzonden, en het bitnumme op een lcdschermpje te krijgen, zodat ik kan volgen waar hij in mijn programma is met serout verzenden.
graag hoor meer van jullie.
Alvast bedankt,
MVG, Jeffey vis.

;ZENDER

Device 16F628A ;Gebruik een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
All_Digital TRUE
Clear ;Wis alle RAM geheugen
; 76543210 ;Alle ingangen digitaal
TRISA = %00001000
PORTB = %00000001

;Logische constanten
Clear ;Wis alle RAM geheugen
Symbol baud = 9600 ;baud snelheid communicatie
Symbol timeout = 20 ;Timeout tussen communicatie
Symbol s1 = PORTB.0
Symbol uitgang = PORTA.1 ;Uitgang voor seriele communicatie
Symbol antidender = 25
Dim teller_1 As Byte
Dim teller_2 As Byte
Dim teller_3 As Byte
Dim teller_4 As Byte
Dim teller_5 As Byte
Dim teller_6 As Byte
Dim teller_7 As Byte
Dim teller_8 As Byte
Dim teller_9 As Byte
Dim teller_10 As Byte
Dim teller_11 As Byte
For teller_11 = 1 To 5
Toggle PORTA.2
DelayMS 300
Next

If s1 = 0 Then GoTo uit
;-----------------------------------
programma:
For teller_1 = 1 To 4

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 1]
DelayMS 10000

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 2]
DelayMS 10000

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 3]
DelayMS 10000

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 46]
DelayMS 10000

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 47]
DelayMS 10000

Next
;________________________________________________________

DelayMS 5000

;_______________________________________________________
For teller_2 = 1 To 8

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 4]
DelayMS 10000
DelayMS 10000

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 5]
DelayMS 10000
DelayMS 10000

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 6]
DelayMS 10000
DelayMS 10000

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 7]
DelayMS 10000
DelayMS 10000

Next
;--------------------------------------------------

For teller_3 = 1 To 1

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 8] ;A All groen
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 9] ;A rood
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 10] ;B rood
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 11] ;C rood
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 12] ; D rood
DelayMS 10000
;-----------------------------------------------------
If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 13] ;A geel
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 14] ;B geel
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 15] ;C geel
DelayMS 700

if s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 16] ;D geel
DelayMS 10000
;-----------------------------------------------------

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 17] ;A blauw
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 18] ;B Blauw
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 19] ;C blauw
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 20] ;D Blauw
DelayMS 10000
Next
;____________________________________________________
For teller_4 = 1 To 5

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 25] ;A groen
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 26] ;A groen
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 27] ;A groen
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 28] ;A groen
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 9] ;A rood
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 10] ;B rood
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 11] ;C rood
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 12] ; D rood
DelayMS 10000

;-----------------------------------------------------

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 13] ;A geel
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 14] ;B geel
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 15] ;C geel
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 16] ;D geel
DelayMS 10000
;-----------------------------------------------------

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 17] ;A blauw
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 18] ;B Blauw
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 19] ;C blauw
DelayMS 700

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 20] ;D Blauw
DelayMS 10000

Next

DelayMS 10000

For teller_5 = 1 To 4

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 21]
DelayMS 1200

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 22]
DelayMS 1200
Next
;___________________________________________________________________
DelayMS 15000

For teller_6 = 1 To 5

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 23]
DelayMS 1200

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 24]
DelayMS 1200
Next
;___________________________________________________________________
DelayMS 10000
DelayMS 10000
;________________________________________________
;2 kleuren 1
For teller_7 = 1 To 5

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 30]
DelayMS 2500

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 31]
DelayMS 2500

Next
;______________________________________________________________________
DelayMS 10000
DelayMS 10000
;________________________________________________

; 2 kleuren 2
For teller_8 = 1 To 5

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 32]
DelayMS 1000

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 33]
DelayMS 1000

Next
;___________________________________________________________________
DelayMS 10000

;________________________________________________
; 2 kleuren 3
For teller_9 = 1 To 4

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 34]
DelayMS 1500

If s1 = 0 Then GoTo uit
SerOut uitgang, baud, ["A", 35]
DelayMS 1500

Next
;______________________________________________--------------------------
GoTo programma
End

uit:
DelayMS 20
SerOut uitgang, baud, ["A", 90]

DelayMS 20
For teller_10 = 1 To 1500
If s1 = 1 Then
SerOut uitgang, baud, ["A", 95]
GoTo programma
EndIf
DelayMS 20
Next
GoTo uit

End
End

Zet AUB je programma in de goed code tags, code=picbasic.
Dit is zo haast niet te lezen.

Gebruik je software of hardware serout. Bij hardware doet de PIC de volledige routine afhandelen in hardware en dan krijg je enkel een interrupt wanneer de overdracht voltooid is op het moment dat je de interupt ook geactiveerde heb. Er is geen enkele melden vanuit de hardware op het hoeveelste bit je zit.

Bij software gebeurt het volledige in een software routine en geld een soortgelijk verhaal als hierboven.

Als je echt wilt volgen wat er uitgezonden word zal je de uitgaande pin moeten inlezen met een IO pin. En dan zelf in de software de bits moeten gaan tellen. Mij lijkt het niet zinvol om de bits te volgen de bytes kan je echter een stuk makkelijker volgen.

Lijkt mij ook een veel handig procedure: gewoon de hardware SEROUT een hele byte laten afhandelen en daarna kun je die byte alsnog zelf bitje voor bitje controleren.

sorry,
mischien leg ik het een beetje verkeerd uit.
maar het zijn inderdaad bytes die woorden verzonden door gewoon de seriale data die wordt verzonden door serout softwarematig dat er dan een 1 op mijn lcd display komt te staan.
ik zent uit serout 10000000 = op display : 1
en zent uit serout 01000000 = op display : 2
en zent uit serout 11000000 = op display : 3
en zent uit serout 00100000 = op display : 4
enz.
enz
enz code SerOut uitgang, baud, ["A", 1] dan wil ik op siplay ook 1
enz code SerOut uitgang, baud, ["A", 2] dan wil ik op siplay ook 2

is dit niet te realiseeren via pic basic een code?

Het is trouwens zinloos. Je krijgt zo'n 8000 bits per seconde. Hoe wou je iets zinvols op het display laten zien. Nog afgezien van het feit dat het steeds aansturen van een traag lcd de seriele datastroom geheel om zeep helpt door de lange wachttijden voor het display.

Als je geluk hebt heeft je display een refreshrate van 10mS. Dan kun je 100x per seconde iets laten zien. Niet dat het nut heeft, want lezen kun je het niet...

Wat doet "SerOut uitgang, baud, ["A", 1]" trouwens? Zendt die een"A", of 0x01?

die serout "A" 1 die a is gewoon dat de pic weet dat het voor hem bedoeld is die A is 01000010 en dan komt de data wat je pic er mee moet doen 10000000

overgens word er maar om de 10 sec een serout opdracht verzonden
dan moet het toch mogelijk zijn ??

Een ban voor de TS en een ban voor ricardo12345 want die twee zijn een en dezelfde persoon. Dit is btw niet de eerste keer daarom voorlopig een permanente ban.

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