pic code probleem

Alle vragen m.b.t digitale schakelingen m.b.v. losse i.c's
en oplossingen m.b.v. PIC processoren.
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5971
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

Met die TIC206 max 4A meen ik maar als je een zwaardere triac neemt meer.
Met vriendelijke groet,
Stynus
http://www.elektronicastynus.be
dj jens
Berichten: 1543
Lid geworden op: ma 2 jan 2006, 11:30
Locatie: Den Haag.. .
Contacteer:

Bericht door dj jens »

ik gebruik de TIC225, de oude versie van deze opdracht gebruikte ook dit type. de kerstboom heeft nogsteeds dezelfde slangen dus er kan weinig misgaan... hopelijk zaterdag Mijn MOC3021 dingetjes binnen :)
Harry Manback
Berichten: 39
Lid geworden op: zo 26 okt 2003, 13:27

Bericht door Harry Manback »

Ik ben nu zelf ook een beetje aan het prutsen met PICjes (heb hier een 16f6128 met een picee bordje van elektuur.

Ben een beetje aan het experimenteren geweest. Ik wilde nl een pic gebruiken voor het aansturen van stroboscopen. Tijdens het proberen met het laten knipperen van de ledjes ging alles prima. Er hoorde ook nog een lcd bij dus heb ik die er ook op gesoldeerd en een simpele tutorial van internet geprobeerd om karakters op het display te krijgen.
Dit werkte niet, echter nu krijg ik mijn pic ook niet meer aan de praat met het alleen laten knipperen van de ledjes. weet iemand waardoor dit kan komen....
Zal ik het pakje hier maar laten staan zolang het tikt?
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5971
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

Post je code is.
Met vriendelijke groet,
Stynus
http://www.elektronicastynus.be
Harry Manback
Berichten: 39
Lid geworden op: zo 26 okt 2003, 13:27

Bericht door Harry Manback »

ik heb de oefeningen van deze pagina gebruikt.

http://home.versatel.nl/edithenwilliam/ ... pictut.htm

Looplicht werkt op deze manier...

; Assign your microcontroller
LIST P=16F628

; This include file makes programming more understandble
include <P16F628>

; Predefine your configuration Word
;__CONFIG Configuration Word
;_CP_OFF Code Protection
;_DATA_CP_OFF EEPROM Code Protection
;_BODEN_OFF Under Voltage Reset
;_MCLRE_ON Master Clear Enable(Reset)
;_PWRTE_ON Powerup Timer
;_WDT_OFF WatchDog Timer
;_INTRC_OSC_NOCLKOUT Internal RC oscilator(pins RA6/RA7 can be used voor I/O)
;_LVP_OFF Low Voltage Programming

__CONFIG _CP_OFF & _DATA_CP_OFF & _BODEN_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _LVP_OFF

; Disable warning : Register in operand not in bank 0
ERRORLEVEL -302

; free 16F628 RAM starts at 0x20(depends on type microcontroller)
CBLOCK 0x20
cntr1
cntr2
cntr3
ENDC

;some define's to make things easier
;These are for Bank Switching
#define BANK0 bcf STATUS,RP0 ; RAM PAGE 0
#define BANK1 bsf STATUS,RP0 ; RAM PAGE 1

;startadres of the controller
org 0x0000

; For using A0-A3 as digital I/O
movlw D'7' ;
movwf CMCON ; Comparators off, all pins digital I/O

; Reset Port values
clrf PORTA
clrf PORTB

; define your pin direction (input/output)
BANK1 ; Switch to bank 1
movlw b'11111111' ;
movwf TRISA ; PORTA = all inputs
movlw b'00000000' ;
movwf TRISB ; PORTB = all outputs
BANK0 ; Switch to bank 1

; main loop
; 2 seconds all leds on/off
; 2 seconds leds 1357/2468 on/off
; 2 seconds leds 1234/5678 on/off

main movlw b'11111111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00000000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11111111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00000000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11111111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00000000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11111111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00000000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11111111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00000000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'10101010' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'01010101' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'10101010' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'01010101' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'10101010' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'01010101' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'10101010' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'01010101' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'10101010' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'01010101' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11110000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00001111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11110000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00001111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11110000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00001111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11110000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00001111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'11110000' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
movlw b'00001111' ; Put value in workregister
call outputwait ; Take value from worfregister and put it in PORTB and wait
goto main

outputwait
movwf PORTB ; Take value from worfregister and put it in PORTB
call delay_200ms ; Wait 0,2 sec
return

; Delay routines

delay_100ms
movlw D'1'
goto delay

delay_200ms
movlw D'2'
goto delay

delay_500ms
movlw D'5'
goto delay

delay_1s
movlw D'10'
goto delay

; This code creates a delay with a multiply of 99975 instructions.
; At 4Mhz this is approx. 100 milliseconds.
; BEWARE : If you call this routine with w = 0 then this delay is 256 x 0,1 = 25,6 seconds

delay movwf cntr3
delay1 movlw 0x82
movwf cntr2
delay2 movlw 0xff
movwf cntr1
delay3 decfsz cntr1, f
goto delay3
decfsz cntr2, f
goto delay2
decfsz cntr3, f
goto delay1
return
END
Zal ik het pakje hier maar laten staan zolang het tikt?
Harry Manback
Berichten: 39
Lid geworden op: zo 26 okt 2003, 13:27

Bericht door Harry Manback »

Ik ben zelf ook weer bezig geweest. De LCD heb ik eraf gehaald maar nog steeds werkt hij niet. Als ga programmeren en daarna de pic uitlees blijkt ie helemaal leeg te zijn. De kabel heb ik nagemeten en deze klopt wel (pin to pin) het lijkt erop dat er op de print de pinvolgorde van de connector omgedraaid is, hier heb ik zelf een verloopje voor gemaakt, maar dat lost verder ook niets op.
Zal ik het pakje hier maar laten staan zolang het tikt?
reddevil
Berichten: 316
Lid geworden op: wo 7 feb 2007, 22:54
Locatie: lummen. .. .. .. .. .. .. .. .. .....

Bericht door reddevil »

Probeer eens een simpel knipperlichtje te programmeren waarvan je zeker bent dat het werkt als je dat programmeerd. Doe ik ook soms als ik twijfel. Als dat niet lukt dan is het verder zoeken wat het probleem kan zijn.
Professioneel LED Temmer :twisted: alléé dat hoop ik.
Harry Manback
Berichten: 39
Lid geworden op: zo 26 okt 2003, 13:27

Bericht door Harry Manback »

Ik heb ook een knipperledje geprobeerd, maar deze doet het dus ook niet. Het programma komt op de een of andere manier gewoon niet in de pic te staan. Er staan tenminste allemaal nullen als ik de pic uitlees.

ooh ja programmeren doe ik met het programma icprog
Zal ik het pakje hier maar laten staan zolang het tikt?
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5971
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

heb je toevallig de code protect bit dan niet aangezet in ic prog? dan krijg je allemaar nullen als je hem opnieuw probeert uit te lezen.
Met vriendelijke groet,
Stynus
http://www.elektronicastynus.be
Harry Manback
Berichten: 39
Lid geworden op: zo 26 okt 2003, 13:27

Bericht door Harry Manback »

Code protect staat uit inderdaad ook uit.
Zal ik het pakje hier maar laten staan zolang het tikt?
Plaats reactie