hallo allemaal
heb een vraag over het verzenden van bytes en bits
ik ben bezig met 2 pics om te laten praten met elkaar nu wil ik alleen maar 2 bytes verzenden en aan me pic hanggen 16 duk-knopjes maak contact. nu wil ik het verzenden dat aleen bits zijn 0 en als s1 word in gedruks dat dan op de ondvangende pic 1 kanaal hoog word
an bij los laten weer het kanaal 0
en dat ook zo bij bit nummer 2 en 3 en 4 enz enz
ik weet wel hoe ik het met bytes moet doen is niet moeilijk
maar dan verstuur je gelijk 16 bytes .
dit kan toch ook met bits en 8 bits is byte
s1 in gedrukt bit 1 = 1
s1 niet in gedrukt bit 1 = 0

s2 in gedrukt bit 2 = 1
s2 niet in gedrukt bit 2 = 0

s3 in gedrukt bit 3 = 1
s3 niet in gedrukt bit 3 = 0
zo tot 8 en dan verstuur je steeds 1 byte
hoe kan ik dit voor mekaar krijgen

met bytes weet ik het wel te fixen
maar zo hoe ik het wil krijg ik niet voor mekaar
wie kan mijn helpen om dit uit te legen
alvast bedankt gr richard

ik welke taal moet dit gebeuren ?

Met SETBIT en CLEARBIT...

Als je PROTON BASIC gebruikt...

[Bericht gewijzigd door Roches op (31%)]

oke maar als ik dan dit heb
waar moet ik dan die setbit en die clear bit in geven
en is set bit dan 1 en clearbit 0
???? kun je me een stukje voorbeeld geven aub
alvast bedankt

Zender

Device 16F876A ;Gebruik een 16F628A type
Config hs_osc , WDT_OFF, PWRTE_ON, LVP_OFF,
; Hier stond eerst nog een , aan het einde, dat mag niet!set xtal
Xtal = 16 ;Gebruik een kristal van 16MH

Hserial_SPBRG = 12 ;Transmissiesnelheid van de data over de bus

Hserial_RCSTA = %10010000 ;Bit7:Enable serial port / Bit4:Continu ontvangen
Hserial_TXSTA = %00100000 ;Bit5:Transmitpin ingeschakeld

;ADCON1 = 7
PORTB = %11111111
TRISA = %11111111
TRISC = %00000000

Symbol s1 = PORTB.0
Symbol s2 = PORTB.1
Symbol s3 = PORTB.2
Symbol s4 = PORTB.3
Symbol s5 = PORTB.4

start:
;-------------------
If s1 = 0 Then
HSerOut [133]
ElseIf s1 = 1 Then
HSerOut [134]
EndIf
;-------------------
If s2 = 0 Then
Bit HSerOut [1]
ElseIf s2 = 1 Then
HSerOut [136]
EndIf
;-------------------
If s3 = 0 Then
HSerOut [137]
ElseIf s3 = 1 Then
HSerOut [138]
EndIf
;-------------------
If s4 = 0 Then
HSerOut [139]
ElseIf s4 = 1 Then
HSerOut [140]
EndIf
;-------------------

DelayMS 50

GoTo start

End
End

Ondvanger

'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 2-6-2011 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************

Device 16F628 ;Gebruik een 16F628A type
Config hs_osc, WDT_Off, PWRTE_ON, lvp_off, MCLRE_OFF

All_Digital TRUE
Xtal = 16

;Transmissiesnelheid van de data over de bus
;Hserial_Baud = 9600
Hserial_SPBRG = 25
; %76543210
Hserial_RCSTA = %10110000 ;Bit7:Enable serial port / Bit4:Continu ontvangenCREN
Hserial_TXSTA = %00100000 ;Bit5:Transmitpin ingeschakeldCREN

Clear
Dim DATAbyte As Byte
Dim teller_1 As Byte
Dim teller_2 As Byte
Dim teller_3 As Byte
TRISB.3 = 0
TRISB.4 = 0
TRISB.5 = 0
TRISB.6 = 0
TRISB.7 = 0
;------------------
PORTB.3 = 0
PORTB.4 = 0
PORTB.5 = 0
PORTB.6 = 0
PORTB.7 = 0
Dim databit As Byte

Symbol s1 = PORTA.2
Symbol led1 = PORTB.3
Clear
DelayMS 1000

programma_1
HSerIn [DATAbyte]

If Bit,1 = 1 Then
PORTB.7 = 1
EndIf

If DATAbyte = 134 Then
PORTB.7 = 0
EndIf

If DATAbyte = 135 Then
PORTB.6 = 1
EndIf

If DATAbyte = 136 Then
PORTB.6 = 0
EndIf

If DATAbyte = 137 Then
PORTB.5 = 1
EndIf

If DATAbyte = 138 Then
PORTB.5 = 0
EndIf

If DATAbyte = 139 Then
PORTB.4 = 1
EndIf

If DATAbyte = 140 Then
PORTB.4 = 0
EndIf

GoTo programma_1
End
End

[Bericht gewijzigd door ricardo12345 op (42%)]

Bij mijn PROTON IDE zit een helpfunctie, daar staan de functies precies uitgelegd.

Succes...

ik gebruik pronton plus

helaas kan niet in me help vinden over bitset enz
zit er niet in denk ik
er zit niks in me help
gr richard

[Bericht gewijzigd door ricardo12345 op (11%)]

Vreemd dat bij jou de helpfunctie niet werkt, ik heb ook Proton Plus...

Ook CO heeft een zoekfunctie "SETBIT CLEARBIT" geeft dan al 35 resultaten voor SETBIT en 25 voor CLEARBIT.

Er wordt wel een beetje inzet verwacht van je hoor, ik serveer vandaag geen hapklare brokken.

Kom op toon wat initiatief....

ik doe toch echt me best maar vind niks
ik kom er echt niet meer uit help
als ik meschien 1 vorbeeltje kan krijgen van 1 druknop.
ik snap ook al niet hoe je die setbit en clearbit in je code moet verwerken ???
en dan hserout hoe je dat dan in me kaar moet zeten
meschien een stukje code dan werk ik hem zelf verder wel uit
gr richard

nou nou ik kom er niet uit het wil me echt niet lukken om 2 bytes
te verzenden en iedere bit is een schakelaar die bit 1 of 0 set ik snap er echt nu niks meer van baal wel dat het niet wil lukken

Bij deze dan de uitleg die PROTON in de help heeft staan:

Clearbit en Setbit zijn gebruikt, dus hier moet je verder mee komen.

Example

  ' Clear then Set each bit of variable EX_VAR
 DEVICE = 16F877
 XTAL = 4
 DIM EX_VAR AS BYTE
 DIM INDEX AS BYTE

 CLS
 EX_VAR = %11111111
AGAIN: 

 FOR INDEX = 0 TO 7         ' Create a loop for 8 bits
 CLEARBIT EX_VAR,INDEX      ' Clear each bit of EX_VAR
 PRINT AT 1,1,BIN8 EX_VAR   ' Display the binary result
 DELAYMS 100                ' Slow things down to see what's happening
 NEXT                       ' Close the loop
 FOR INDEX = 7 TO 0 STEP -1 ' Create a loop for 8 bits
 SETBIT EX_VAR,INDEX        ' Set each bit of EX_VAR
 PRINT AT 1,1,BIN8 EX_VAR   ' Display the binary result
 DELAYMS 100                ' Slow things down to see what's happening
 NEXT                       ' Close the loop
 GOTO AGAIN                 ' Do it forever

Succes

Voor de rest toch in de help van PROTON kijken..

Achtereenvolgend:
menu HELP, Help Topics, Command Reference...

erg bedankt ik ga een poging doem om het werkend te krijgen bedankt,!!

[Bericht gewijzigd door ricardo12345 op (49%)]

Op 22 juni 2011 20:31:05 schreef Roches:
Bij deze dan de uitleg die PROTON in de help heeft staan:

Clearbit en Setbit zijn gebruikt, dus hier moet je verder mee komen.

Example

  ' Clear then Set each bit of variable EX_VAR
 DEVICE = 16F877
 XTAL = 4
 DIM EX_VAR AS BYTE
 DIM INDEX AS BYTE

 CLS
 EX_VAR = %11111111
AGAIN: 

 FOR INDEX = 0 TO 7         ' Create a loop for 8 bits
 CLEARBIT EX_VAR,INDEX      ' Clear each bit of EX_VAR
 PRINT AT 1,1,BIN8 EX_VAR   ' Display the binary result
 DELAYMS 100                ' Slow things down to see what's happening
 NEXT                       ' Close the loop
 FOR INDEX = 7 TO 0 STEP -1 ' Create a loop for 8 bits
 SETBIT EX_VAR,INDEX        ' Set each bit of EX_VAR
 PRINT AT 1,1,BIN8 EX_VAR   ' Display the binary result
 DELAYMS 100                ' Slow things down to see what's happening
 NEXT                       ' Close the loop
 GOTO AGAIN                 ' Do it forever

Succes

Voor de rest toch in de help van PROTON kijken..

Achtereenvolgend:
menu HELP, Help Topics, Command Reference...

ik kom er niet uit ik zie het niet meer hoe ik s1 tot s16 er in krijg en me hserout waar moet ik die zeten ????
ziet het niet meer

Denk dat het tijd wordt dat je eens een programmeer-cursus gaat doen.

Als basic al niet lukt.....

Vooraan,

Bij hserout blijft hij wachten tot dat hij een signaal krijgt om te versturen.

:Edit, dat is bij hserin, Ik weet niet zeker of je hserout hier wel kan gebruiken.
Maar je kunt proberen het daar te zetten waar je ook je print opdracht hebt staan.

[Bericht gewijzigd door roelle op (19%)]

oké kunje meschien ook vertellen waar je dan de s0 tot s7 moet zeten

bedoeling in dat als s1 0 of 1 is dat dan bit 0. 1 of 0 is
bij hserout

Op 23 juni 2011 10:59:39 schreef Roches:
Denk dat het tijd wordt dat je eens een programmeer-cursus gaat doen.

Als basic al niet lukt.....

kan genoeg progen alleen ik kom niet uit de werking hoe die bits te kunnen veranderen aan de hand van s0 tot s7
via hserout en dan ook nog het ondvangst gebeuren

had begreepen dat het form is om wat te kunnen vragen en uitleg te krijgen .
als ik het niet snap dit stuk van progen . er word ook niks uit gelecht van wat var is en doet hoe en wat .
hoe kan ik het dan gaan snappen

ik heb nu dit maar waar moet ik die s0 tot s7 in geven dan
dat staat toch nog niet in de code of kijkt i all op de ingangen hoog of laag ??? ik heb dit nog nooit gedaan met hserout gewerkt
met bit hoog of laag van 0 tot 8 wil graag dat portb 0 tot 7 en
porta 0 tot 7 van de 16f876 ingangen met schakelaars worden en dat als 1 van de schakelaars hoog is dan hserout bit hoog maak

Device 16F876A ;Gebruik een 16F628A type
Config hs_osc , WDT_OFF, PWRTE_ON, LVP_OFF,
; Hier stond eerst nog een , aan het einde, dat mag niet!set xtal
Xtal = 8 ;Gebruik een kristal van 16MH

;Hserial_Baud = 9600 ;Transmissiesnelheid van de data over de bus
Hserial_SPBRG = 12
Hserial_RCSTA = %10010000 ;Bit7:Enable serial port / Bit4:Continu ontvangen
Hserial_TXSTA = %00100000 ;Bit5:Transmitpin ingeschakeld

Dim EX_VAR As Byte
Dim INDEX As Byte

Cls
EX_VAR = %11111111
AGAIN:
For INDEX = 0 To 7 ' Create a loop for 8 bits
ClearBit EX_VAR,INDEX ' Clear each bit of EX_VAR
HSerOut [EX_VAR]
DelayMS 100 ' Slow things down to see what's happening
Next ' Close the loop
For INDEX = 7 To 0 Step -1 ' Create a loop for 8 bits
SetBit EX_VAR,INDEX ' Set each bit of EX_VAR
HSerOut [EX_VAR]
DelayMS 100 ' Slow things down to see what's happening
Next ' Close the loop
GoTo AGAIN ' Do it forever



trisa %11111111

dim teller as byte

teller=%11111111

While 1=1
teller=porta
hserout[teller]
wend

end

Dit zal waarschijnlijk al voldoende zijn voor het geen wat jij wil.
De teller is nu 8 bit. Je ingangen van portA zijn nu gekoppeld aan de teller.
De eerste ingang van portA staat gelijk aan de eerste bit van de teller.
Doordat je schakelaars allen aan een pull up zitten zullen bij een uit-stand een 1 geven, en bij een aan-stand een 0. waardoor de bits dus bij hserout inverted van wat jij wil worden doorgestuurd.
Dit is een constante bewaking. zodra je dus je schakelaar weer los laat zal dit meteen met hserout doorgestuurd worden.
De rest van het programma moet je zelf uitzoeken

Is dit wat je wilt ?