Dit onderwerp is niet nieuw op CO en ik heb het hier dus ook gehaald.
Het oorsprongkelijke werkt en ook wanneer ik porta en portb van de pic 16f628A wissel.
Nu wil ik hetzelfde bekomen voor twee extra motoren, dus twee maal een andere ingang die telkens twee andere uitgangen stuurt.
Na uren proberen en testen heb ik toch maar besloten om hier een vraagje te stellen. Dus het eerste gedeelte(als ik de rest vanaf tweede kanaal verwijder werkt. Een hint of liever een uitgewerkte oplossing?


Device 16F628A                              ;Gebruik een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE                            ;Alle ingangen digitaal

;constante declareren
Symbol FALSE = 0
Symbol HOOG  = 1
Symbol LAAG  = 0
Symbol TRUE  = 1
 
;Variabelen declareren

Dim linksom        As Bit    ;Is TRUE of FALSE 
Dim rechtsom       As Bit    ;Is TRUE of FALSE
Dim Neutraal       As Bit    ;Check neutraalstand
Dim omhoog         As Bit    ;Is TRUE of FALSE 
Dim omlaag         As Bit    ;Is TRUE of FALSE
;        76543210
PORTA = %00000000                           ;Alle PORTA poorten laag
PORTB = %00000000                           ;Alle PORTB poorten laag
TRISA = %11111111                           ;Alle PORTA ingangen behalve 2&3 zijn uitgangen
TRISB = %00000000                           ;Alle PORTB uitgangen

;PORTB_PULLUPS ON                            ;On-chip pull-up weerstanden actief 
Clear                                       ;Wis alle RAM geheugen

;hoofdprogramma
While 1 = 1
  linksom  = FALSE
  rechtsom = FALSE 

  While PORTA.0 = HOOG : Wend  ;Wacht op laag niveau
  While PORTA.0 = LAAG : Wend  ;Wacht op hoog niveau

  DelayUS 1350                 ;= 1,35mSec
  If PORTA.0   = LAAG Then linksom = TRUE
  DelayUS  150                 ;= 0,15mSec
  If PORTA.0   = HOOG Then
    DelayUS 250                ;= 0,15mSec
    If PORTA.0 = LAAG Then rechtsom = TRUE
  EndIf
   
  
  If linksom  = TRUE Then
    PORTB.1 = HOOG
  Else
    PORTB.1 = LAAG  
  EndIf

  If rechtsom = TRUE Then
    PORTB.2   = HOOG
  Else
    PORTB.2  = LAAG  
  EndIf
  
 ;Tweede kanaal

While PORTA.1 = HOOG : Wend  ;Wacht op laag niveau
  While PORTA.1 = LAAG : Wend  ;Wacht op hoog niveau

  DelayUS 1350                 ;= 1,35mSec
  If PORTA.1   = LAAG Then linksom = TRUE
  DelayUS  150                 ;= 0,15mSec
  If PORTA.1   = HOOG Then
    DelayUS 250                ;= 0,15mSec
    If PORTA.1 = LAAG Then rechtsom = TRUE
  EndIf

  
  If linksom  = TRUE Then
    PORTB.4 = HOOG
  Else
    PORTB.4 = LAAG  
  EndIf

  If rechtsom = TRUE Then
    PORTB.5   = HOOG
  Else
    PORTB.5  = LAAG  
  EndIf  
Wend

Niemand die mij wat kan helpen?