hallo allemaal .
progammeer taal proton plus
wie o wie kanme helpen,!!
ik ben driftig aan het zoeken naar de commando
om me porten. portdb om te zeten naar digital in
wil alle poorten gebruiken als input
ik ben nu 2 uur aan het zoeken en kan niet vinden
hoe ik portd kan om gooien naar digital inputs
ik heb dit gadaan trisd = %11111111
maar ik weet niet waarom het niet werkt
weet iemand hoe dit zit
alvast bedankt
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
vreemd ik heb wat ge progamerd en dat als ik
schakelaar s0 tot s7 o zet gaat i eve aan en dan gewoon weer uit
erg vreemd
;Config file Dezen code kopiëren en plakken in picbasic voor de 18F4620
Device 18F4620
Xtal = 8
Config_Start
OSC = INTIO67
PWRT = On
WDT = OFF
LPT1OSC = OFF
MCLRE = OFF
XINST = OFF
Debug = OFF
Config_End
; OSCCON BITS 654 (Datasheet BLZ: 32)
; OSCCON 111 = 8 MHZ
; OSCCON 110 = 4 MHZ
; OSCCON 101 = 2 MHZ
; OSCCON 100 = 1 MHZ
OSCCON.6 = 1
OSCCON.5 = 1
OSCCON.4 = 1
TRISC = %00000000
trisd = %11111111
Symbol s0 = PORTD.0
Symbol s1 = PORTD.1
Symbol s2 = PORTD.2
Symbol s3 = PORTD.3
Symbol s4 = PORTD.4
Symbol s5 = PORTD.5
Symbol s6 = PORTD.6
Symbol s7 = PORTD.7
start:
If s0 = 1 Then
PORTC.0 =1
ElseIf s0 = 0 Then
PORTC.0 = 0
EndIf
If s1 = 1 Then
PORTC.1 =1
ElseIf s1 = 0 Then
PORTC.1 = 0
EndIf
If s2 = 1 Then
PORTC.2 =1
ElseIf s2 = 0 Then
PORTC.2 = 0
EndIf
If s3 = 1 Then
PORTC.3 = 1
ElseIf s3 = 0 Then
PORTC.3 = 0
EndIf
If s4 = 1 Then
PORTC.4 =1
ElseIf s4 = 0 Then
PORTC.4 = 0
EndIf
If s5 = 1 Then
PORTC.5 =1
ElseIf s5 = 0 Then
PORTC.5 = 0
EndIf
If s6 = 1 Then
PORTC.6 =1
ElseIf s6 = 0 Then
PORTC.6 = 0
EndIf
If s7 = 1 Then
PORTC.7 =1
ElseIf s7 = 0 Then
PORTC.7 = 0
EndIf
GoTo start
End[Bericht gewijzigd door Henry S. op (1%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
klopt net agter ge komen en veranderd maar werkt ook niet
vraag me dis echt af of je die portd wel ingangen kanmaken
erg raar
[Bericht gewijzigd door ricardo12345 op (39%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Natuurlijk kan dat, zijn gewone i/o pinnen.
Heb je wel een pull-down aan de PGM pin? (of je moet LVP uitzetten in config)
ja ook all gedaan pull up weerstanden ik dek dat ik meschie iets fout heb met de
Config_Start
OSC = INTIO67
PWRT = On
WDT = OFF
LPT1OSC = OFF
MCLRE = OFF
XINST = OFF
Debug = OFF
Config_End
ik gebruik een extterne osc 8000 mhz op port porta 7 en 6
heb ik dit wel goed staan ???
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
ik heb me puldown weerstanden er op zitten op me printje los er bij
ik weet eigenlijk niet of me osc goed staad 8000mhz gebruik extern kristal
weet iemand dat ik snap het niet meer
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Je hebt maar 1 pull-down nodig (aan de PGM pin), of je moet LVP in config op OFF zetten...
Oscillator staat zoals je kunt zien op INT(ern), dus geen kristal.
ik snap het even niet kint u me vertellen wat ik in de config moet zeten
of veranderen
ik zie geen lvp staan
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
hadv
Just find out what you like and let it kill you
Je code kan ook wel een stuk eenvoudiger:
If s0 = 1 Then
PORTC.0 =1
ElseIf s0 = 0 Then
PORTC.0 = 0
EndIf
eenvoudiger:
If s0 = 1 Then
PORTC.0 =1
Else
PORTC.0 = 0
EndIf
sx is namelijk 0 of 1. Een elseif om te vragen of dat wel waar is is ernstig overbodig.
Ik zou persoonlijk een pull-up weerstand van 10K tussen /MCLRE en +Volt hangen, LVP=Off.
LVP staat gewoon gedocumenteerd in de PIC18F config fuses (Help>Documents).
----+---
|
10K
|
+---/MCLRE
Pullup of -down weerstanden aan PORTC afhankelijk van hoe je de schakelaar wilt laten werken.
input poort hoog als S niet ingedrukt, laag als wel ingedrukt
----+---
|
10K
|
+---input
|
S
|
----G---
input poort laag als S niet ingedrukt, hoog als wel ingedrukt
----+---
|
S
|
+---input
|
10K
|
----G---
oke het werkt heb bij de config
lvp = off
gezet en het werkt nu eindelijk
ook bedank voor de code makelijker te maken
gr en badankt
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Pull-up weerstand aan MCLR is niet nodig (MCLRE=OFF) en heeft niets met de pull-down aan PGM pin te maken.
Om dit soort fouten te voorkomen is het handig om eerst de datasheet te lezen. Als je alleen een copy & paste van bestaande code doet, weet je over 10 jaar nog niet waarom iets op een bepaalde manier moet worden ingesteld...
[Bericht gewijzigd door Arco op (52%)]
Hallo,
nu wil ik porta 0, 1, 2, 3,
ingangen difital maken en geef op
trisa.0 = 1
trisa.1 = 1
trisa.2 = 1
maar er gebeurd hier ook niks
moet je hier nu wer een apard iets voor doen ??
dat heb ik gedaan ingang alle trisa = %11111111
uitgangen portd = %00000000
symbol led = portd.0
als ik dan zeg
start:
if s1 = 1 then
led = 1
else
led = 0
endif
goto start
ik druk op de toets en dan gebeurt er niks
en terwijl het andere weer wel werkt
aan portd de srakelaars en aan ports de leds om te testen
en dan zo trisd = %11111111 en voor de uitgangen ports = %00000000 dit werkt weer wel
maar ik heb ook de porta's nodig voor ingangen te gebruiken
erg raar snap dit niet
Tijd om eens de datasheet door te lezen, en even te googlen op de begrippen pull-up en pull-down. Verder zul je er rekening mee moeten houden dat pinnen een dubbele functie kunnen hebben. Bijvoorbeeld als de AD-converter aan staat zal dat invloed hebben op de betrokken pinnen.
In de datasheet staat bij het overzicht van alle pinnen of er ergens een dubbele functie op zit.
Verder is het raadzaam je logica eens goed uit te werken, wanneer moet iets hoog worden, wanneer laag. Vaak zorgt een foutje in de logica van een programma voor onverwachte resultaten.
En haal eens een spellingscontrole over je teksten, je maakt akelig veel slordige foutjes.
hadv
Just find out what you like and let it kill you
Default is PORTA vrijwel altijd analoog en zul je dus altijd een instructie nodig hebben om die digitaal te maken.
In Proton is hier een aparte instructie voor: ALL_DIGITAL = TRUE.
Voor de 4620 kun je ook het volgende doen: ADCON1 = 15.
Ik raad je, net als mbbneon, sowieso aan om de datasheet er op na te slaan zodat je ook snapt wat je doet. Nu blijf je gissen en vragen stellen. Op een gegeven moment werkt er iets, maar je hebt er geen bal van geleerd en bij de volgende opgave gaat het weer mis.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Op 15 augustus 2011 23:08:01 schreef hadv:
Je code kan ook wel een stuk eenvoudiger:eenvoudiger:
If s0 = 1 Then PORTC.0 =1 Else PORTC.0 = 0 EndIf
en jij noemt dat eenvoudiger ?
dit noem ik eenvoudiger :
portc.0 = s0
hadv
Just find out what you like and let it kill you
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
nu ik de TS zijn originele code eens bekijk kan hij berter PortD=POrtC doen .. in plaats van een bak if then elsen...
die if then elsen veroorzaken time delay. met dat in 1 keer ssignen gaat dat weg.