Anoniem
Ik heb dit programmatje geschreven in basic:
'De Pic Declaren
Device 16F876
'LCD Declareen
Declare LCD_TYPE ALPHA 'Alpha Numeric Display
Declare LCD_LINES 2 'Aantal lijnen op Display
'Poorten
Declare LCD_RSPIN PortC.0 'RS pin instellen
Declare LCD_ENPIN PortC.1 'E Pin Instellen
Declare LCD_DTPin PortC.4 'Poort waar data heen moet
Declare LCD_INTERFACE 4
'Inputs Declaren
Input PortA 'Knoppen en sensoren input
'OutPuts Declaren
Output PortB
DelayMs 200 'Wachten tot LCD klaar is
Dim Scartie As Bit
Scartie = 0
Repeat 'De Main Loop
Gosub ButtonCheck
Until Scartie = 1 'End van de loop !!mag nooit gebeuren!!
ButtonCheck: 'kijken of er op knoppen wordt gedrukt
If PortA.0 = 1 then
Cls
DelayMs 20
Print "Settings"
Endif
If PortA.1 = 1 then
Cls
DelayMs 20
Print "Quit"
Endif
If PortA.2 = 1 then
Cls
DelayMs 20
Print "Down"
Endif
If PortA.3 = 1 then
Cls
DelayMs 20
Print "Up"
Endif
Return 'Terug naar de Main Loop
Maar al mijn toetsen die op PortA staan reageren niet is het een fout in mijn code?
Alvast bedankt voor de hulp
Scartie
menno
Je biertje wordt niet jaloers als je een andere pakt, je vrouw wel ...
misschien ligt het wel niet aan de software en is het wel een hardware probleem. Een schema zou dus wel handig zijn...
Anoniem
Tja ik zou graag mijn simpele schema hier neerzetten, alleen heb ik geen webspace om hem op te zetten,
Maar ik kan het misschien ook heel simpel uitleggen, het zijn gewoon 4 druk knoppen op PortA die zijn ook verbonden met een voedings bron om de poort hoog te maken (dat gebeurt ook want er gaat een tekentje branden in Proteus).
Dus ik ben dan van mening dat die poort hoog is dus 1 dus als ik dan PortA0 = 1 heb dan moet dat kloppen toch?
Ik heb gekeken bij andere schema's in Proteus maar daar hebben ze gewoon nog een weerstandje erover staan die met de ground is verbonden die hem denk weer laag maakt.
Wat kan het probleem zijn?
Alvast bedankt
Will
Op 2 mei 2004 11:19:08 schreef Scartie:
Tja ik zou graag mijn simpele schema hier neerzetten, alleen heb ik geen webspace om hem op te zetten,Maar ik kan het misschien ook heel simpel uitleggen, het zijn gewoon 4 druk knoppen op PortA die zijn ook verbonden met een voedings bron om de poort hoog te maken (dat gebeurt ook want er gaat een tekentje branden in Proteus).
Dus ik ben dan van mening dat die poort hoog is dus 1 dus als ik dan PortA0 = 1 heb dan moet dat kloppen toch?Ik heb gekeken bij andere schema's in Proteus maar daar hebben ze gewoon nog een weerstandje erover staan die met de ground is verbonden die hem denk weer laag maakt.
Wat kan het probleem zijn?
Alvast bedankt
Will
Het lijkt mij dat je de knoppen aan massa moet hangen, en eventueel de pull-up weerstanden moet enablen die in de PIC zitten (hebben PIC's dat ook net als AVR's ?), zo niet, dan moet je met een pull-up weerstand naar VCC werken, en dan de schakelaar aan massa leggen. Waarschijnlijk zie je uC nu altijd een 1 en gebeurd er dus niks.
Jonathan
"Theorie is alleen te rechtvaardigen als 'n vorm van praktijk. De praktijk staat niet terecht voor 't hooggerechtshof van de theorie" (Stephan Toulmin)
port a zijn analoge ingangen
voeg dit eens toe aan je code om deze functies te disabelen
is wel JAL
bank_1
f877_adcon1 = 0b_1000_0111 -- all digital IO
bank_0
of wel moet je maken dat de waarde 1000_0111 in het register ADCON1 terecht komt 
Anoniem
Hmm tja ik nou in mijn programma gezegt dat ze als ze aangezet worden standaard LOW zijn, maar als ik nu gewoon de schakelaar eraan koppen en druk hem in dan krijg ik een contencensie (of iets dergelijks) fout, en als ik er een PULLUP weerstand bijzet dan gebeurt er weer nix, poort veranderd in schema wel van LOW naar HIGH maar verder springt hij in het programma gewoon over de line If PortA.0=1 Then.
Dus met andere woorden ik snap er nu nix meer van 
Als iemand Proteus 6 heeft met CLoaders dan wil ik hem wel ff mijn Project sturen om ff te kijken wat het kan wezen
*net bericht van Sp3ci3S gelezen en ga daar nu ff naar kijken*
Anoniem
Nope nogsteeds nix.
Dit is de error (wel ander schematje maar wel zelfde error)
Reading netlist...
Net VDD taken as alias for VCC
Net VSS taken as alias for GND
Reading SPICE models...
Building circuit...
Instantiating SPICE models...
[U1] PIC16 model release 6.01.00 simulating PIC16876 device.
[U1] Loaded 256 bytes of persistent EEPROM data.
[U1] Read total of 492 bytes from file 'PICSOU~1\Main.HEX'.
[U1] Loaded 241 program words and 0 data bytes.
DSIM ERROR: Contention on net [VCC] at time 2.35. State=3F
DSIM ERROR: Contention on net [#00000] at time 2.35. State=3F
[DSIM] RUN Error.
Real Time Simulation FAILED.
Jonathan
"Theorie is alleen te rechtvaardigen als 'n vorm van praktijk. De praktijk staat niet terecht voor 't hooggerechtshof van de theorie" (Stephan Toulmin)
Anoniem
@Sp3ci3S, heb ik al gedaan maar nogsteeds nix
'De Pic Declaren
Device 16F876
'Zeggen dat PortA digitaal moet zijn
ADCON1 = 7
'LCD Declareen
Declare LCD_TYPE ALPHA 'Alpha Numeric Display
Declare LCD_LINES 2 'Aantal lijnen op Display
'Poorten
Declare LCD_RSPIN PortC.0 'RS pin instellen
Declare LCD_ENPIN PortC.1 'E Pin Instellen
Declare LCD_DTPin PortC.4 'Poort waar data heen moet
Declare LCD_INTERFACE 4
'Inputs Declaren
Input PortA 'Knoppen en sensoren input
Low PortA 'PortA Laag maken
'OutPuts Declaren
Output PortB
DelayMs 200