SchemaTheek
 
Home Nieuws Forum Schema's Artikelen Magazine Downloads Links Shops Zoeken
 
Controle Paneel
Gebruikersnaam
Wachtwoord
  Onthoud mij
» Wachtwoord?
» Registreren
Site info
» Het Team
» Contact
» FAQ
» Leden
» Upload Archief
Stats
Totaal online: 10
10 gasten
0 leden:
Forum > Digitaal > JAL code naar Picbasic (proton IDE)
« 1 2 3 [4] 5 »
Stynus
Admin
Berichten: 2849
Gepost op donderdag 2 Januari 2014 00:31:14 QuoteWijzig

Misschien een domme andere vraag:
In je andere topic zeg je dat je een defecte mcp ic hebt. Die heb je toevallig toch niet op deze print gezet?

En voor dat tris register gebruik ik dit truukje om het te onthouden:
1 = ingang = als eengang onthouden
0 = uitgang
 
[Bericht gewijzigd door Stynus op Donderdag 2 Januari 2014 00:32:53]


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 00:40:08 QuoteWijzig

Op de vraag van Henk.: Het is zo , de bestaande print werkt maar de code in die ic is geschreven in JAL en ik wil die in picbasic zodat ik zelf verder ermee kan.
Het ontvangen via 433 mHz en de rest werkt alleen dus die MCP niet.

Op de vraag van Stynus, ja het is een goeie want die wat defect was is weg gegooid en die ik in gebruik heb is die van de print.
Betreffende die tris register heb ik nagelopen via picbasic, waarbij ik die b poorten kan laten vervallen aangezien daar het probleem niet zit, dus heb ik alleen.:

Code
PORTA = %00000000                  ;Alle niveaus van PORTA eerst laag maken 
TRISA = %00000000 


Waarbij op porta.7 een led zit die flikkerd om te kijken of de ic werkt, maar als ik die in het tris register op 1 zet blijft deze branden en flikkerd niet meer.


http://pascalbianca.blogspot.nl/
reddevil
Lid
Berichten: 1266
Gepost op donderdag 2 Januari 2014 00:42:27 QuoteWijzig

Dat is normaal, met 1 zet je de poort als ingang. Met 0 als uitgang dus die moet 0 blijven.


Veel te weinig tijd voor mijn projecten of heb ik er soms te veel?
pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 00:55:36 QuoteWijzig

Waarom knippert die led dan niet op a7 terwijl als ik beide regels weglaat hij wel knippert?


http://pascalbianca.blogspot.nl/
Henk (NL)
Lid
Berichten: 263
Gepost op donderdag 2 Januari 2014 00:57:42 QuoteWijzig

We draaien nu even om, het gaat om het testen (niet opgeven dus.

was de test eerst;

Code

I2COUT SDA,SCL,$00,$42,[%00000000]
I2COUT SDA,SCL,$05,$42,[%00010010]
I2COUT SDA,SCL,$09,$42,[%11110000]



Nu dit even testen;

Code

I2COUT SDA,SCL,$42,[$00,%00000000]
I2COUT SDA,SCL,$42,[$05,%00010010]
I2COUT SDA,SCL,$42,[$09,%11110000]



Ben benieuwd

pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 01:01:37 QuoteWijzig

Oke Henk, zal deze morgen vanmiddag testen, zou zonde zijn als ik door de moeheid dadelijk fouten ga maken omdat ik niet helder meer kijk terwijl ze wel helpen misschien.

Probleem met led is opgelost zag dat ik 10ms had staan ipv 500 led likkerde dus wel alleen wat te snel voor mij ogen


http://pascalbianca.blogspot.nl/
pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 11:06:15 QuoteWijzig


Quote
Henk (NL) schreef:
We draaien nu even om, het gaat om het testen (niet opgeven dus.

was de test eerst;

Code

I2COUT SDA,SCL,$00,$42,[%00000000]
I2COUT SDA,SCL,$05,$42,[%00010010]
I2COUT SDA,SCL,$09,$42,[%11110000]



Nu dit even testen;

Code

I2COUT SDA,SCL,$42,[$00,%00000000]
I2COUT SDA,SCL,$42,[$05,%00010010]
I2COUT SDA,SCL,$42,[$09,%11110000]



Ben benieuwd



Je zult het niet geloven, doe net de 16f628 opnieuw programmeren en had zoiets van probeer beide codes erin dus zo.:

Code

  Device 16F628A 
Config INTRC_OSC_NOCLKOUT,_         ;Interne oscillator, geen clocksignaal naar buiten
       WDT_OFF,_                    ;WatchDog Timer uitgeschakeld
       PWRTE_ON,_                   ;Power-up Timer Enable ingeschakeld
       LVP_OFF,_                    ;Low Voltage Programming uitgeschakeld
       MCLRE_OFF                    ;Externe Master Reset Enable uitgeschakeld
All_Digital TRUE                    ;Alle ingangen digitaal

LCD_RSPin = PORTA.1 
LCD_ENPin = PORTA.0         

;        76543210 
PORTA = %00000000                  ;Alle niveaus van PORTA eerst laag maken 
TRISA = %00100000                   '1 is ingang 0 is uitgang 

'Set ports for leds
Symbol flash_LED = PORTA.7          ;Set port for led to see if pic is working

Symbol SDA = PORTA.2           ' Alias the SDA (Data) line
Symbol SCL = PORTA.3          ' Alias the SSL (Clock) line 
Symbol Control %01000010

Dim Received As Byte                ; Variabelen
Dim VAR1 As Byte                     ' We'll only read 8-bits
Dim Address As Byte                  ' 8-bit address required
 
Print At 1,1, "MCP23008 Test"
Print At 2,1, "02-01-2014"
Address = 5
I2COUT SDA, SCL, Control , Address , [%00010010]
Address = 0
I2COUT SDA, SCL, Control , Address , [%00000000] 
            
Loop:
 Toggle flash_LED                    ; hoofdprogramma laat een ledje knipperen

 I2COUT SDA,SCL,$00,$42,[%00000000]
I2COUT SDA,SCL,$05,$42,[%00010010]
I2COUT SDA,SCL,$09,$42,[%11110000] 
  DelayMS 500 
I2COUT SDA,SCL,$42,[$00,%00000000]
I2COUT SDA,SCL,$42,[$05,%00010010]
I2COUT SDA,SCL,$42,[$09,%11110000] 
   DelayMS 500 
GoTo Loop ' Loop forever



En er beginnen ledjes te branden.
Alleen in dit stukje gaan ze alle 8 branden.

Code
 I2COUT SDA,SCL,$00,$42,[%00000000]
I2COUT SDA,SCL,$05,$42,[%00010010]
I2COUT SDA,SCL,$09,$42,[%11110000] 


En in dit stukje de eerste 4, wat volgens mij correct zou moeten zijn.

Code
I2COUT SDA,SCL,$42,[$00,%00000000]
I2COUT SDA,SCL,$42,[$05,%00010010]
I2COUT SDA,SCL,$42,[$09,%11110000] 



Nu is mijn vraag wat is het verschil tussen het eerste stukje waardoor 8 ledjes branden en het tweede stukje dat de eerste 4 gaan branden, terwijl je in beide toch %11110000 hebt staan.


http://pascalbianca.blogspot.nl/
Henk (NL)
Lid
Berichten: 263
Gepost op donderdag 2 Januari 2014 11:23:31 QuoteWijzig

Goed pascal, dit schiet eindelijk op!

Verschil is simpel gesteld alles tussen haakjes is interne opdracht buiten haakjes extern,
dus op de I2C BUS, intern is naar het Register van het MCP.
Misschien is het anders te verwoorden, maar dit lijkt op dit moment het duidelijkst.

Ga nou eens dit proberen, dus de LAATSTE regel;


Code

I2COUT SDA,SCL,$42,[$09,%11110000]


in bv. en probeer maar, en dan kun je met een variabele dit randomisen*

Code

I2COUT SDA,SCL,$42,[$09,%10101010]



* de oorspronkelijk Case tabel, maar doe het rustig aan.

Ik quote dit even wat ik vond op het internet;

Quote

The MCP23008 is not an original port expander, but is actually a PIC re-programmed to act as a port expander and is full of little glitches.



Hoe voelt dit nou?

(3x corrigeren, dat schiet op)
 
[Bericht gewijzigd door Henk (NL) op Donderdag 2 Januari 2014 11:27:04]

pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 12:11:32 QuoteWijzig


Quote
Henk (NL) schreef:

Hoe voelt dit nou?



Zeer goed, alleen jammer dat je er dan 4 dagen mee bezig bent.
Ik wil wel even mijn dank aan jullie betuigen , dat jullie het er niet bij laten zitten en toch doorgaan.

Met het randomisen was ik al begonnen, maar ik zit nu met een ander probleem, maar dit is software matig.

Deze code gebruik ik dus om de eerste relai aan te schakelen via een eigen programma in visual basic.

Code
 I2COUT SDA,SCL,$42,[$00,%00000000]
        I2COUT SDA,SCL,$42,[$05,%00010010]
        I2COUT SDA,SCL,$42,[$09,%00000001] 



Uiteraard als ik de 2de relai in wil schakelen gebruik ik dan deze.:

Code
 I2COUT SDA,SCL,$42,[$00,%00000000]
        I2COUT SDA,SCL,$42,[$05,%00010010]
        I2COUT SDA,SCL,$42,[$09,%00000010] 


Dat houd in dat als ik de 2de relai inschakel de eerste word uitgeschakeld.
Maar nu komt het, stel ik wil relai 1 ingeschakeld laten.
Moet ik in de case select dit erbij gaan zetten of kan op een of andere manier anders gedaan worden?

En nog een vraagje die 3 regels.:

Code
 I2COUT SDA,SCL,$42,[$00,%00000000]
        I2COUT SDA,SCL,$42,[$05,%00010010]
        I2COUT SDA,SCL,$42,[$09,%00000001] 


Volstaat dat ook dat ik die eerste 2 regels bovenaanzet (dus maar 1 malig hoef te gebruiken) en de 3de regel wel gewoon in de case zet?


http://pascalbianca.blogspot.nl/
pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 12:25:30 QuoteWijzig

Op mijn laatste vraag heb ik het antwoord al gevonden


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2849
Gepost op donderdag 2 Januari 2014 12:39:47 QuoteWijzig


Quote
pascalbianca schreef:
Dat houd in dat als ik de 2de relai inschakel de eerste word uitgeschakeld.
Maar nu komt het, stel ik wil relai 1 ingeschakeld laten.
Moet ik in de case select dit erbij gaan zetten of kan op een of andere manier anders gedaan worden?


Je kan in picbasic 1 bit in een byte aanpassen
vb:
test_var.1 = 1


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 15:15:44 QuoteWijzig

Heb je niet een klein voorbeeldje zodat ik kan zien wat je bedoeld, het hoeft niet het geen te zijn van mij?


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2849
Gepost op donderdag 2 Januari 2014 15:18:35 QuoteWijzig

Bovenaan:
Dim uitgangen as byte

Dan waar je data wilt manipuleren
uitgangen.x = x

En waar je wil wegschrijven schrijf je gewoon die uitgangen variabele naar de mcp ipv die %10101010


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 15:35:13 QuoteWijzig

Dus als ik het goed begrijp , bovenaan even die dim gezet en in mijn code.:


Code
Select Received     ' Check conditions based on variable Received
    Case 10     ' If 10 switch channel 1 off
        Print At 2,1, "Chanel 1 off"
       uitgangen.1 = 0
    Case 11     ' If 11 switch channel 1 on
        Print At 2,1, "Chanel 1 on"
        uitgangen.1 = 1
         ' Send a byte to the I2C bus.
        I2COUT SDA,SCL,$42,[$09,%00000001] 
    Case 20     ' If 20 switch channel 2 off
        Print At 2,1, "Chanel 2 off"
        uitgangen.2 = 0
    Case 21     ' If 21 switch channel 2 on
        Print At 2,1, "Chanel 2 on"
        uitgangen.2 =  1
        I2COUT SDA,SCL,$42,[$09,%00000010] 



Dan zou ik die I2COUT overal weg moeten laten en dan met een if-instructie op het laatste alles activeren?
Word wel een lange if functie , lijk mij toch niet de bedoeling toch?

Code
 If uitgangen.0 = 0 And uitgangen.1 = 0 And uitgangen.2 = 0 And uitgangen.3 = 0 And uitgangen.4 = 0 And uitgangen.5 = 0 And uitgangen.6 = 0 And uitgangen.7 = 0 Then
  I2COUT SDA,SCL,$42,[$09,%00000000]
  EndIf



Of bedoel je dit ? http://www.picbasic.nl/frameload.htm?http://www.picbasic.nl/beginners10a.htm

Maar als ik dat probeer en zet bovenaan.:

Code
Dim uitgangen As Byte
uitgangen.0 = 0             ;Maak bit 0 van variabele 'PietJanHein' '1'
uitgangen.1 = 0 
uitgangen.2 = 0 
uitgangen.3 = 0 
uitgangen.4 = 0 
uitgangen.5 = 0 
uitgangen.6 = 0 
uitgangen.7 = 0


en in mijn case
Code
Select Received     ' Check conditions based on variable Received
    Case 10     ' If 10 switch channel 1 off
        Print At 2,1, "Chanel 1 off"
       uitgangen.0 = 0
    Case 11     ' If 11 switch channel 1 on
        Print At 2,1, "Chanel 1 on"
        uitgangen.0 = 1
         


en buiten mijn case eronder.:

Code
I2COUT SDA,SCL,$42,[$09, Bin8 uitgangen]


Dan krijg ik als fout in de laatste code.:
BIN modifier is not suported with this command
 
[Bericht gewijzigd door pascalbianca op Donderdag 2 Januari 2014 15:54:31]


http://pascalbianca.blogspot.nl/
pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 16:29:42 QuoteWijzig

Opgelost door alleen dit te gebruiken.:

Code
I2COUT SDA,SCL,$42,[$09, uitgangen]



Werkt als een tierelier


http://pascalbianca.blogspot.nl/
Henk (NL)
Lid
Berichten: 263
Gepost op donderdag 2 Januari 2014 16:40:30 QuoteWijzig


Quote

Dat houd in dat als ik de 2de relai inschakel de eerste word uitgeschakeld.
Maar nu komt het, stel ik wil relai 1 ingeschakeld laten.
Moet ik in de case select dit erbij gaan zetten of kan op een of andere manier anders gedaan worden?



In dit stadium, zoals ik al eerder zei, niet alles tegelijk willen.
Met een paar voorbeelden, geen punt maar, niet stel dit.... of stel dat.... dat komt als laatste!!!

Gewoon uitleggen wat je uiteindelijk wil bereiken.
Dit maakt voor de meedenkers de zaak overzichtelijk.
Beloofd?

Henk (NL)
Lid
Berichten: 263
Gepost op donderdag 2 Januari 2014 16:42:53 QuoteWijzig

Oh, ik zie het, ik had dit als volgende willen uitleggen, maar je hebt al gevonden.

Code

I2COUT SDA,SCL,$42,[$09, uitgangen]

pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 20:34:42 QuoteWijzig

Ik heb nog 1n klein vraagje.
Volgens de schema zou een 16F628 ook door een 16F648 vervangen worden omdat de pin verhouding hetzelfde is.
Maar als ik de naam van de pic omzet en dan in de ic de hex file zet doet hij niks op de breadboard, duw ik de 16f628 erin werkt hij wel.

Waar kan dit in zitten?


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2849
Gepost op donderdag 2 Januari 2014 21:06:45 QuoteWijzig

Raar, je hebt in je programma de andere pic gezet? De 648 is normaal gewoon de 628 met meer geheugen.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1444
Gepost op donderdag 2 Januari 2014 21:55:15 QuoteWijzig

Ja dat dacht ik ook, maar heb het 5 keer geprobeerd.
Met de code in een 628 geen probleem, alles werkt, maar met de 648 zie ik wel dat de ic iets doet (toggle ledje erbij staan) maar de mcp doet niets.


http://pascalbianca.blogspot.nl/
« 1 2 3 [4] 5 »

Active Topics

» De gevolgen van een kl...
» Virtual Chemist probleem
» Probleem met Toyota Av...
» Whirlpool kookplaat
» 24 volt motor vertrage...
» Show je mini projecten
» Purer 8.3se
» MULTIMETERS geven alle...
» Werkplaatsinrichting
» 2022

» Meer actieve topics

Advertenties

PCBway

© 2004-2022 SchemaTheek
Laadtijd: 0.41125 sec.