radovi forumasa sa ubrzanog kursa pbp
Moderators: pedja089, stojke369, [eDo], trax
Re: radovi forumasa sa ubrzanog kursa pbp
da li mi netko može objasniti kako koristiti onaj TMR0 na pic16f84a? tražio sam na google-u ali ništa nisam uspio razumiti kako to radi. Također sam i pregledao datasheet...
treba mi za sat (ovaj koji sam napravio) da mu otklonimono kašnjenje
unaprijed hvala!
treba mi za sat (ovaj koji sam napravio) da mu otklonimono kašnjenje
unaprijed hvala!
Re: radovi forumasa sa ubrzanog kursa pbp
Imas na sajtu trax-ov kod za sat. Pa Pogledaj kako se koristi.
Uglavnom najjednostavnije je podesis preskaler i izvor takta, to se radi sa registrima koji su navedeni u datasheetu.
Jos nadjes registar u kojem je onaj bit koji govori da je registar presao sa 255 na 0.
I znaci stalno gledas taj bit, i cim predje na 1 ti ga stavi na 0 i uvecaj kaunter i to je to.
Samo sto za to moras koristiti kristal 32,...KHz. Mozes ga koristiti kao osnovni oscilator ili kao oscilator za TMR0. to je nekako ukratko najjednostavnije...
Uglavnom najjednostavnije je podesis preskaler i izvor takta, to se radi sa registrima koji su navedeni u datasheetu.
Jos nadjes registar u kojem je onaj bit koji govori da je registar presao sa 255 na 0.
I znaci stalno gledas taj bit, i cim predje na 1 ti ga stavi na 0 i uvecaj kaunter i to je to.
Samo sto za to moras koristiti kristal 32,...KHz. Mozes ga koristiti kao osnovni oscilator ili kao oscilator za TMR0. to je nekako ukratko najjednostavnije...
Re: radovi forumasa sa ubrzanog kursa pbp
hvala na pomoći ali još ništa od uspjeha....
shvatio sam sve šta si ti rekao ali kad sam trebao to znanje pretvoriti u program tu sam zapeo
pročitao sam i datasheet i pogledao sam neke primjere na internetu
ono što me muče su ti bitovi (OPTION_REG i INTCON i TMR0). kako ih podesiti
pokušao sam pročitatit trax-ov kod od onog nixie sata ali je problem što ja neznam asm!
znam jedino picbasic i to što si nas ti naučio
nemoj misliti da tražim sve gotovo na tanjuru ali bi mi bilo jednostavnije neki primjer...
oprosti što te ovako gnjavim...
EDIT:Da li misliš na onaj kristal iz sata
shvatio sam sve šta si ti rekao ali kad sam trebao to znanje pretvoriti u program tu sam zapeo
pročitao sam i datasheet i pogledao sam neke primjere na internetu
ono što me muče su ti bitovi (OPTION_REG i INTCON i TMR0). kako ih podesiti
pokušao sam pročitatit trax-ov kod od onog nixie sata ali je problem što ja neznam asm!
znam jedino picbasic i to što si nas ti naučio
nemoj misliti da tražim sve gotovo na tanjuru ali bi mi bilo jednostavnije neki primjer...
oprosti što te ovako gnjavim...
EDIT:Da li misliš na onaj kristal iz sata
Re: radovi forumasa sa ubrzanog kursa pbp
Pa isto kao i svki drugi registar!
option_reg=%010101010
Pises samo gde ti treba 1, gde 0.
Sta koji bit znaci to imas u tablicama u datasheetu.
Napisi kako bi ih voleo postaviti, i polako redjaj bit po bit, pa da vidimo ide li ti...
option_reg=%010101010
Pises samo gde ti treba 1, gde 0.
Sta koji bit znaci to imas u tablicama u datasheetu.
Napisi kako bi ih voleo postaviti, i polako redjaj bit po bit, pa da vidimo ide li ti...
Re: radovi forumasa sa ubrzanog kursa pbp
evo kako sam ja to razumio...
znam da nevalja jer ne radi e sad šta sam ja tu zbrljao neznam no vjerujem cijeli program
za glavni osc koristio sam kristal iz sata a RA.4 stavio sam na Vcc te i na masu preko 4k7 (kao na trax-ovoj shemi)
znam da nevalja jer ne radi e sad šta sam ja tu zbrljao neznam no vjerujem cijeli program
za glavni osc koristio sam kristal iz sata a RA.4 stavio sam na Vcc te i na masu preko 4k7 (kao na trax-ovoj shemi)
Code: Select all
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 3
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_LINES 2
pause 500
COUNTER VAR BYTE
SECOND VAR BYTE
start:
OPTION_REG = %00110010
INTCON = %00100100
On Interrupt GOTO BROJAJNE
BROJAJNE:
COUNTER = COUNTER + 1
IF COUNTER > 32 THEN SECOND = SECOND + 1
LCDOUT $FE,1,DEC SECOND
INTCON = 0
TMR0 = 0
RESUME
GOTO START
Re: radovi forumasa sa ubrzanog kursa pbp
Evo da puno ne lupamo glavu
To sam nasao u folderu MCS-a.
Code: Select all
'**************************************************************** *
'* Notes : To use this example with MicroCode Studio, you *
'* : should: *
'* : (1) Compile this code and program your target *
'* : MCU using the 'Compile and Program' button *
'* : or F10 *
'* : (2) Ensure that a serial cable is connected to *
'* : your PC and development board (using a *
'* : suitable line driver like a MAX232) *
'* : (3) Open the Serial Communications Window (from *
'* : VIEW or just press F4 *
'* : (4) Select the correct COM port and set the *
'* : baudrate to 19200 *
'* : (5) Press the 'Connect' button *
'****************************************************************
'define LOADER_USED 1 ' using a loader, OK to leave in if a loader is not used
define OSC 20 ' this example uses a 20MHz clock
DEFINE HSER_BAUD 19200 ' set baud rate to 19200
Minute var byte ' Define minute variable
Second var byte ' Define second variable
Ticks var byte ' Define pieces of seconds variable
DoUpdate var byte ' Define variable to indicate update
clear ' clear all RAM (sets all VAR declarations to zero)
DoUpdate = 1 ' Force first display
OPTION_REG = $57 ' Set TMR0 configuration
INTCON = $A0 ' Enable TMR0 interrupts
On Interrupt Goto TickInterrupt
' Main program loop
MainLoop:
if DoUpdate then
hserout [dec2 Minute,":", dec2 Second,$D,$A]
DoUpdate = 0
endif
Goto MainLoop
' Interrupt routine to handle each timer tick
' Disable interrupts during interrupt handler
disable
TickInterrupt:
Ticks = Ticks + 1 ' Count pieces of seconds
If Ticks < 61 Then ExitInterrupt ' 61 ticks per second
' One second elasped - update time
Ticks = 0
Second = Second + 1
If Second >= 60 Then
Second = 0
Minute = Minute + 1
If Minute >= 60 Then
Minute = 0
endif
Endif
DoUpdate = 1 ' Set update
ExitInterrupt:
INTCON.2 = 0 ' Reset timer interrupt flag
Resume
Re: radovi forumasa sa ubrzanog kursa pbp
PUNO TI HVALA!!!
spasio si me ovim!
spasio si me ovim!
Re: radovi forumasa sa ubrzanog kursa pbp
Ostaje ti za pocetak umesto serout ubaciti lcdout, pa onda dodas i podesavanje i eto sata.
Re: radovi forumasa sa ubrzanog kursa pbp
to sam odmah napravio i promjenio brzinu oscilatora te sam promjenio i onaj ticks sa 61 na 38
Da li pic16f84 se može oštetiti ako radi na frek većoj od njegove (10mhz)?
Ja sam probao na 16 i radi samo što mu na početku programa stavim define osc 16
Usput da li trebam ra.4 spojiti na +5v te istovremeno ga spojiti preko 4k7 na masu kako je @trax napravio na svom nixie satu?
Još jednom puno hvala!
Da li pic16f84 se može oštetiti ako radi na frek većoj od njegove (10mhz)?
Ja sam probao na 16 i radi samo što mu na početku programa stavim define osc 16
Usput da li trebam ra.4 spojiti na +5v te istovremeno ga spojiti preko 4k7 na masu kako je @trax napravio na svom nixie satu?
Još jednom puno hvala!
Re: radovi forumasa sa ubrzanog kursa pbp
16F84 nema "njegovu" frekvenciju,nego radi na onoj kakav mu kristal stavis.
Znaci kakav kristal takav i defineosc.
Znaci kakav kristal takav i defineosc.
Re: radovi forumasa sa ubrzanog kursa pbp
Ne znam zasto bi dirao ra4 ako ga ne koristis...
A ako ga koristis onda moras dodati pull up otpornik, jer nema tranzistora prema +.
EDIT:
@ traxu to sluzi za detekciju nestanka napajanja, pa da uredjaj ide u mod samo za bateriju...
A ako ga koristis onda moras dodati pull up otpornik, jer nema tranzistora prema +.
EDIT:
@ traxu to sluzi za detekciju nestanka napajanja, pa da uredjaj ide u mod samo za bateriju...
dimer sa 16f84a
Evo napokon sam napravio i istestirao mali dimer sa PIC16f84a. Ima podesavanje na up i down tastere u rezoluciji od 30 podioka. Uredjaj je krajnje jednostavan i vise je za ucenje i pocetnike nego za neku pravu upotrebu Radi na principu raspodjele svjetla i pauze (nesto kao PWM )ide od 1:30 u korist pauze = najtamniji polozaj pa do 30:1 u korist svjetla. Treperenje se ne moze primijetiti jer se radi o brzinama 33 Hz koje oko ne moze registrovati.
Shema: a ovo je kod pisan u Microcode pbp
Hex kod:
Otpornik R4 dimenzionisati prema vrsti LED diode po formuli R=(Uvcc-Ud)/Id
gdje su:
R = otpor u omima,
Uvcc = napon napajanja u Voltima
Ud = radni napon Led diode ( zavisno od vrste a najcesce je 1,7V)
Id = maksimalna struja kroz diodu ( i PIC ne smije biti veca od 0,02A) Ne preporucujem manji od 180 Oma za Uvcc od 5 V.
Shema: a ovo je kod pisan u Microcode pbp
Code: Select all
'****************************************************************
'* Name : dimer.BAS *
'* Author : [niho] *
'* Notice : Copyright (c) 2010 [niho] *
'* : All Rights Reserved *
'* Date : 16.01.2010 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
@ DEVICE pic16f84a,XT_OSC,WDT_OFF,PROTECT_OFF 'definicija konfiguracije
DEFINE OSC 4 'definicija oscilatora
i VAR BYTE 'postavka prvog brojaca (varijable)
i=1
SYMBOL LED=portb.7 'postavka simbola zamjene pinova
SYMBOL taster1=portb.0
symbol taster2=portb.1
OUTPUT LED
INPUT TASTER1 'postavke ulaza-pojacavanje int.svjetla
input taster2 'smanjivanje intenziteta svjetla
pocetak: 'radni potprogram
low led
pause i
high led
pause 30-i
if taster1=0 then i=i+1 'pojacavanje svjetla
if taster2=0 then i=i-1 'smanjivanje svjetla
if i>30 then i=30 'ogranicenje pauze
if i<1 then i=1
goto pocetak
end ' kraj
Hex kod:
Code: Select all
:1000000028288F018E00FF308E07031C8F07031CEA
:10001000232803308D00DF300F2003288D01E83EB8
:100020008C008D09FC30031C18288C070318152838
:100030008C0764008D0F15280C181E288C1C222894
:1000400000002228080083130313831264000800B1
:100050000130A600831686130614861483128613B5
:1000600083168613831226080120861783168613AB
:10007000831226081E3C9E000030031CFF3E9F009A
:100080001F088F001E080220640006184828A60AD0
:10009000640086184C28A60364001F302602031C47
:1000A00053281E30A60064000130260203185A2887
:0A00B0000130A6002F2863005B2832
:02400E00F13F80
gdje su:
R = otpor u omima,
Uvcc = napon napajanja u Voltima
Ud = radni napon Led diode ( zavisno od vrste a najcesce je 1,7V)
Id = maksimalna struja kroz diodu ( i PIC ne smije biti veca od 0,02A) Ne preporucujem manji od 180 Oma za Uvcc od 5 V.
Re: radovi forumasa sa ubrzanog kursa pbp
Odlicno, ovo se moze iskoristiti i za sijalicu uz jedan tranzistor...
-
- Pravo uznapredovao :)
- Posts: 457
- Joined: 22-04-2008, 16:27
- Location: Maribor(SLO) Koprivnica(HR)
- Contact:
Re: radovi forumasa sa ubrzanog kursa pbp
Pedja, jesi vidio šta rade tvoji učenici!
Real Radios Glow in the Dark!
Re: radovi forumasa sa ubrzanog kursa pbp
To se zove djak hehe, nisam zelio dalje "komplikovati", ostalo neka bude stvar maste svakog pojedinca
Jasno da moze ici tranzistor pa neka sijalica ili tranzistor i niz ledica, optokopler pa SRC i sijalica ili motor..
Jasno da moze ici tranzistor pa neka sijalica ili tranzistor i niz ledica, optokopler pa SRC i sijalica ili motor..
Re: radovi forumasa sa ubrzanog kursa pbp
evo da se i ja malo nadovežem s ovim PWM
dakle ovo sam napravio prije 2 tjedna (da ne ispadne da sam te kopirao,makar znam da niste takvi licemjeri)
dakle evo primjera kako da se taj "postotak" jačine osvjetljenja prikaže na LCD-u
samo jedna napomna:ovdje gdje piše pause 80 povećati/smanjiti po voljijer zbog same brzine pojačavanja/smanjivanja i zbog treptanja lcd-a
EDIT:Super odrađeno @niho!
dakle ovo sam napravio prije 2 tjedna (da ne ispadne da sam te kopirao,makar znam da niste takvi licemjeri)
dakle evo primjera kako da se taj "postotak" jačine osvjetljenja prikaže na LCD-u
Code: Select all
define osc 10
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 3
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_LINES 2
pause 500
pwmr var word
pwmr = 0
pwmrw var word
start:
if portb.2 = 1 then
pwmr = pwmr + 1
pause 80
endif
pwm portb.4,pwmr,1
pwmrw = pwmr
lcdout $fe,1,"Razina:",dec2 pwmrw,"%"
goto start
EDIT:Super odrađeno @niho!
Re: radovi forumasa sa ubrzanog kursa pbp
@Branez, vidim, i drago mi je stro nije sve ono uzalud kucano.
@niho samo tako nastavi.
@ VFDisplay svaka cast.
@niho samo tako nastavi.
@ VFDisplay svaka cast.
Re: radovi forumasa sa ubrzanog kursa pbp
@VF_display, Hvala, mada kad sam testirao program, pauza vec preko 40ms se moze vidjeti kao treperenje pa sam zato smanjio na 30, i vjeruj da radi odlicno!
Re: radovi forumasa sa ubrzanog kursa pbp
@pedja089 Kako uzalud, ovo je bio jedan od najboljih kurseva koje sam pratio do sada, ne znam cime se bavite u zivotu ali kao prosvjetni radnik ( sa 26 godina staza u nastavi) mogu Vam reci da ste jako dobro osmislili kurs i pedagoski i metodicki pravilno odradili, zato i imate rezultate i dobre ucenike
Re: radovi forumasa sa ubrzanog kursa pbp
Ja sam trenutno student druge godine mehatronike.
To je pisano pre nego sto sam krenuo na fakultet.
Kad sam krenuo onda sam stao sa pisanjem jer nisam imao internet u stanu.
Hvala na pohvalama
Edit:
Za to je najvise zasluzan @vbmaster, hvala i njemu
To je pisano pre nego sto sam krenuo na fakultet.
Kad sam krenuo onda sam stao sa pisanjem jer nisam imao internet u stanu.
Hvala na pohvalama
Edit:
Za to je najvise zasluzan @vbmaster, hvala i njemu