Toon posts:

pic processor 16f628 en een probleempje

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo
nieuw hier op het forum en dus ken ik nog niet alle regeltjes maar dat went snel

het gegeven probleem

ik ben een schakel paneel aan het maken om op de club een depot te sturen wat wissels en verlichting en dergelijke aan gaat
het probleem heb ik bij mijn eigen baan niet voorgehad omdat de sturing iets anders was dan wat er nu gevraagd is geworden

door een knop in te drukken worden er rijwegen aangelegd en deze worden op een schakel paneel weer gegeven door middel van led's
een 16f628 kon dit mooi doen maar mis poes
normaal heb ik dus 16 in/uitgangen waar van porta.5 alleen ingang kan zijn en porta.4 met een pullup aan de positief moet hangen
tot zover geen probleem porta.5 is ingang van de bus waar ik mee werk en die pullup laat alleen tijdens het opstarten de leds eventjes branden en dat is een goede controle dat alles opstart
maar nu het probleem ik kan niet alle combinaties van poorten hoog maken die ik zou willen
als ik Bv porta = %11001001 doe dan gaat bij port b ook een led beginnen te knipperen BV portb. 3
terwijl die in de software toch op nul staat
tijd voor een slecht filmpje waar je ziet wat ik bedoel
YouTube: YouTube
je ziet dus dat bij B een led mee pinkt en dat is niet de bedoeling
ik heb het nu wel klaar gekregen door dat ik de combinaties zo heb aangepast dat die waar de andere poorten mee begonnen te werken niet voor komen en die poorten die mee knipperen niet te gebruiken
weer een flimpje
YouTube: demo stand schakel paneel

blijft dus waarom de andere uitgangen mee knipperen
het programma is in pic basic
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
   Device 16F628A

 
  Config INTRC_OSC_NOCLKOUT,_  ; Interne oscilator aan
       WDT_OFF,_             ; WatchDog Timer uit
       PWRTE_Off,_            ; Power-up Timer Enable aan
       MCLRE_OFF,_            ; Externe Master Reset Enable aan
       BODEN_OFF,_           ; Brown Out Detectie Enable uit
       CP_Off                 ; Code Protection aan
    


 
        '76543210
PORTA = %00000000             ;Eerst alle PORTA uitgang registers uit (laag maken)
TRISA = %00100000 
        '76543210
PORTB = %00000000             ;Eerst alle PORTB uitgang registers uit (laag maken)
TRISB = %00000000 

PORTA = %00000000
 All_Digital TRUE              ;Alle ingangen digitaal
 
 Declare Xtal = 4
Dim w3 As Word 
Dim a As Word



Symbol ingang  = PORTA.5
 PORTB = %11111111
 PORTA = %11111111
main:
w3 = 0
While 1 = 1 
'w3 = PulsIn PORTA.5,1
                                                    'onbruikbare poorten b2,b3,b4,b5,b6,b7
 
  Inc w3
Select w3
Case 8 To 12   '1
  PORTA = %00000111
  PORTB = %00000000
 Case 18 To 22   '2
 PORTA = %00001011
 PORTB = %00000000
 Case 28 To 32   '3
 PORTA = %11010010
 PORTB = %00000001
Case 38 To 42    '4
 PORTA = %11010010
 PORTB = %00000010
 Case 48 To 52   '5
 PORTA = %01010010
 PORTB = %00000000
Case 58 To 62      '6
 PORTA = %01010010
 PORTB = %00000000
Case 68 To 72     '7
 PORTA = %00010010
 PORTB = %00000000
 Case 78 To 82    '8
 PORTA = %00000000
 PORTB = %00000000
 Case 88 To 92    '9
 PORTA = %00000000
 PORTB = %00000000
 EndSelect
 DelayMS 200 
 Cls 
 If w3 > 100 Then GoTo main
  
Wend


deze staat nu in demo mode want ik maak geen gebruik van de PulsIn PORTA.5,1
deze staat nu uit en nu verhoogd w3 met "inc w3"
via pulsin werkt de schakeling al wel maar dat stukje met de 20 knoppen moet nog gebouwd worden en bestaat alleen op een test bord

hopelijk iemand met een verklaring van die poorten en ik heb de handleiding reeds meermaals gelezen en daar ook niets over gevonden


gr raf

Alle reacties


Acties:
  • +1 Henk 'm!

  • theuser
  • Registratie: Juni 2008
  • Laatst online: 03-01 19:20
De 16F628 heeft verschillende modi voor zijn poorten, vermoedelijk heb je hem gewoon in de verkeerde staan!

ASM voorbeeld :
movlw 0x07
movwf CMCON ;turn comparators off (make it like a 16F84)

Een vergelijkbaar comando zie ik in je code niet.

Bron: http://www.winpicprog.co.uk/pic_tutorial1.htm

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bsf STATUS, RP0 ;select bank 1
movlw b'00000000' ;set PortB all outputs
movwf TRISB
movwf TRISA ;set PortA all outputs
bcf STATUS, RP0 ;select bank 0

ja pic basic en proten verschillen een beetje
maar hier boven zet je alle ports als output net zoals bij proton
PORTA = %00000000 ;Eerst alle PORTA uitgang registers uit (laag maken)
TRISA = %00100000
PORTB = %00000000 ;Eerst alle PORTB uitgang registers uit (laag maken)
TRISB = %00000000

door de nullen op port A en B nu 1 te maken zet ik ze zo dat ze in de opstart modus op aan staan maar dat wil ik niet dus staan er nullen en staan ze dus uit.
als ik er bv een loop licht van maak werkt alles wel zoals het moet want dan brand er maar 1 led tegelijk µmaar juist combineren van poorten loopt verkeerd

de config die ik heb staan zet de modus voor de processor en de poorten maar dat zal in die tutorial in de include staan
Config INTRC_OSC_NOCLKOUT,_ ; Interne oscilator aan
WDT_OFF,_ ; WatchDog Timer uit
PWRTE_Off,_ ; Power-up Timer Enable aan
MCLRE_OFF,_ ; Externe Master Reset Enable aan
BODEN_OFF,_ ; Brown Out Detectie Enable uit
CP_Off ; Code Protection aan


gr raf

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ha gevonden

bsf STATUS, RP0 ;select bank 1
movlw b'00000000' ;set PortB all outputs
movwf TRISB
movwf TRISA ;set PortA all outputs
bcf STATUS, RP0 ;select bank 0

dit doet in asm hetzelfde als dit in proton

PORTA = %00000000 ;Eerst alle PORTA uitgang registers uit (laag maken)
TRISA = %00100000
PORTB = %00000000 ;Eerst alle PORTB uitgang registers uit (laag maken)
TRISB = %00000000


alleen ik kan makkelijker een poort uitgang maken dan in asm

gr raf

Acties:
  • 0 Henk 'm!

  • _ferry_
  • Registratie: Januari 2002
  • Niet online

_ferry_

Moderator Tweaking

Nipple Tweaker

Zou je in het vervolg Hoofdletters en interpunctie willen gebruiken? Dat leest een stuk makkelijker.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wat helpen deze bij het op lossen van het probleem .??
Dat is het zelfde als "lees de handleiding " helpt ook niets omdat ik deze reeds door gelezen had .

[ Voor 48% gewijzigd door Verwijderd op 01-07-2017 19:07 ]


Acties:
  • 0 Henk 'm!

  • dokteronline
  • Registratie: Januari 2009
  • Laatst online: 01-10 20:45
Dat mensen die je willen helpen, duidelijk het probleem kunnen lezen? Want op deze manier leest het voor geen meter.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok bij deze dan wat stel je voor om het probleem op te lossen .

Acties:
  • 0 Henk 'm!

Verwijderd

Lekkere houding naar mensen die je willen helpen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nadat een moderator mij daar op gewezen heeft .
Zet ik nu hoofd letters en punten maar ik zie niet veel mensen die helpen .
Buiten "theuser" die wel een oplossing aan het zoeken was .
Al de rest is eigenlijk topic vervuiling want ze dragen niet bij aan de gestelde vraag.

Acties:
  • 0 Henk 'm!

  • _ferry_
  • Registratie: Januari 2002
  • Niet online

_ferry_

Moderator Tweaking

Nipple Tweaker

Rustig aan ;) Gewoon een beetje geduld hebben, er zit hier niet 200 man te wachten tot iemand een probleem voorschotelt waar ze met z'n allen tegelijk op kunnen duiken, code doorspitten, en dan met een kant en klare oplossing komen. Kan best eens een dagje duren.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo Ferry

Ik heb geduld hoor en het probleem met punten en hoofd letters heeft een reden .
Nu ik aan de pc en zit en een toetsenbord ter beschikking heb kan het wel .
Daar straks zat ik in het atelier en sprak de posting in .
Toen het nog op automatische stond maakte het spraak programma er een zooitje van.
Daarom heb ik dat dus uitgezet en typt het programma alles zonder hoofdletters en punten.
Als dat aan zou staan dan zou het nog onleesbaarder geweest zijn geloof mij.
En een kant en klare oplossing verwacht ik niet al zou dit natuurlijk wel mooi zijn .
Maar die processoren doen soms zo eigenwijs dat het niet normaal meer is .
Ik ben nu aan de knop besturing bezig en laat wel een update zien als dit klaar is.

Gr Raf

Acties:
  • +1 Henk 'm!

  • theuser
  • Registratie: Juni 2008
  • Laatst online: 03-01 19:20
Ik zeg ook niet dat je ASM moet gebruiken maar denk dat een regel om de comparators uit te schakelen nuttig kan zijn.

B.V in C :
CMCON = 0x07;

En staat niet in de config
Dus de equivalent in pic basic toevoegen.

Zie ook : http://www.edaboard.com/thread222767.html

Acties:
  • 0 Henk 'm!

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
Verwijderd schreef op zaterdag 1 juli 2017 @ 19:14:
Nadat een moderator mij daar op gewezen heeft .
Zet ik nu hoofd letters en punten maar ik zie niet veel mensen die helpen .
Buiten "theuser" die wel een oplossing aan het zoeken was .
Al de rest is eigenlijk topic vervuiling want ze dragen niet bij aan de gestelde vraag.
En de reden waarom mensen je niet helpen is omdat je je vraag niet fatsoenlijk stelt. Niet alleen het gebruik van leestekens en hoofdletters, maar ook je code. Het aantal professionals dat nog programmeert in basic is nagenoeg nihil. Probeer het eens in C. De kans dat mensen je code dan kunnen volgen wordt ineens een stuk groter. Hoef je ook niet terug te vallen op ASM.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@ Flake

Ik ben geen professional maar gewoon een amateur modelbouwer.
Ik heb jaren geleden proton aangekocht en ik heb zo maar niet opnieuw geld om nog maar eens een ander programma aan te kopen.
Dat ik in de vorige eeuw begonnen ben met het programmeren in Basic (Z80)en afgeleide wat toen de gangbare programmatie taal was.
Er was nog Comodore basic maar daar wilde je helemaal niet aan beginnen .
De stap naar proton was dan aannemelijker dan beginnen in Jal of VB .
Programmeren in C of C+ of C++ want er zijn ook reeds verschillende versies van die allemaal wel iets verschillen.
En als mensen mij niet kunnen helpen is dat geen probleem en is de enige oplossing zelf dit probleem proberen op te lossen .
Wat wel zou helpen is dat als iemand het probleem eens in een andere taal op een testbord zou willen proberen en kijken of het gestelde probleem zich ook voordoet .
Veel programmeer werk is het uiteindelijk niet en als het zich in C niet voordoet dan zou het inderdaad een basic probleem kunnen zijn wat eventueel niet kan opgelost worden .
Want uiteindelijk in welke compiler je ook programmeerd het is de Hex code die in de processor gebrand word.

@ theuser.
ik heb dit opgezocht en dat word dus in proton gedaan met die trisa en porta configuratie

The TRISA register controls the data direction
of the comparator pins for each mode.

met deze instructie zou ik dus die cmcon moeten ingesteld hebben

gr raf

[ Voor 35% gewijzigd door Verwijderd op 02-07-2017 12:42 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@ theuser
Bedankt voor de hulp .
Want het werkt zoals ik het gedacht had.
YouTube: het werkt
Dit is nog maar een klein stukje van het geheel er is nog veel meer in ontwikkeling .
De 10 andere schakelaars hebben al wel een functie maar dat kan ik nu niet laten zien omdat het stuk waar deze mee verbonden worden niet hier thuis zijn maar op de club.
De communicatie tussen de vele processoren verloopt via pulsbreedte modulatie en elke processor dient meteen als repeater zodat het verzonden signaal overal even sterk blijft .

Acties:
  • +1 Henk 'm!

  • theuser
  • Registratie: Juni 2008
  • Laatst online: 03-01 19:20
Graag gedaan!
Mooi dat het werkt!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja en bewijs dat in welke taal je ook programmeert je alsnog een oplossing kunt bieden.

Nu is er reeds dit stukje bij gekomen.
YouTube: programma van de loods begint te lopen op de processor.
Zo komen er twee loodsen te staan
Het schakel paneel is een stukje uit een zeer groot geheel hoor .
De loods deuren zijn bedien baar met 1 knop voor de 4 deuren .
De keuze van het spoor bepaald ook welke deur bedient kan worden .
Het is nu niet echt mijn keuze maar op de club is dat zo beslist en ik moet me der dus aan houden

Nogmaals bedankt voor de hulp .

Gr Raf
Pagina: 1