radovi forumasa sa ubrzanog kursa pbp

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: stojke369, pedja089, [eDo], trax

Re: radovi forumasa sa ubrzanog kursa pbp

Postby VFDisplay » 09-01-2010, 13:08

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!
moje novo audio pojacalo: http://www.youtube.com/watch?v=lErMjEeCITQ ;))
VFDisplay
 
Posts: 515
Joined: 01-08-2009, 20:18

Re: Re: radovi forumasa sa ubrzanog kursa pbp


Re: radovi forumasa sa ubrzanog kursa pbp

Postby pedja089 » 10-01-2010, 00:04

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...
User avatar
pedja089
 
Posts: 6240
Joined: 20-02-2007, 14:50
Location: Sremska Mitrovica,Novi Sad - Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Postby VFDisplay » 10-01-2010, 17:38

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
moje novo audio pojacalo: http://www.youtube.com/watch?v=lErMjEeCITQ ;))
VFDisplay
 
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Postby pedja089 » 10-01-2010, 17:43

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...
User avatar
pedja089
 
Posts: 6240
Joined: 20-02-2007, 14:50
Location: Sremska Mitrovica,Novi Sad - Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Postby VFDisplay » 10-01-2010, 18:22

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)
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
moje novo audio pojacalo: http://www.youtube.com/watch?v=lErMjEeCITQ ;))
VFDisplay
 
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Postby pedja089 » 10-01-2010, 18:29

Evo da puno ne lupamo glavu
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

To sam nasao u folderu MCS-a.
User avatar
pedja089
 
Posts: 6240
Joined: 20-02-2007, 14:50
Location: Sremska Mitrovica,Novi Sad - Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Postby VFDisplay » 10-01-2010, 19:02

PUNO TI HVALA!!!
spasio si me ovim!
moje novo audio pojacalo: http://www.youtube.com/watch?v=lErMjEeCITQ ;))
VFDisplay
 
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Postby pedja089 » 10-01-2010, 19:04

Ostaje ti za pocetak umesto serout ubaciti lcdout, pa onda dodas i podesavanje i eto sata.
User avatar
pedja089
 
Posts: 6240
Joined: 20-02-2007, 14:50
Location: Sremska Mitrovica,Novi Sad - Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Postby VFDisplay » 10-01-2010, 22:38

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!
moje novo audio pojacalo: http://www.youtube.com/watch?v=lErMjEeCITQ ;))
VFDisplay
 
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Postby vukboban » 10-01-2010, 22:43

16F84 nema "njegovu" frekvenciju,nego radi na onoj kakav mu kristal stavis.
Znaci kakav kristal takav i defineosc.
vukboban
 
Posts: 199
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: Re: radovi forumasa sa ubrzanog kursa pbp


Re: radovi forumasa sa ubrzanog kursa pbp

Postby pedja089 » 10-01-2010, 23:50

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...
User avatar
pedja089
 
Posts: 6240
Joined: 20-02-2007, 14:50
Location: Sremska Mitrovica,Novi Sad - Srbija

dimer sa 16f84a

Postby niho » 17-01-2010, 12:46

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:
dimer.jpg
shema sklepana na brzaka u proteusu
dimer.jpg (13.05 KiB) Viewed 914 times
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

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.
User avatar
niho
 
Posts: 1236
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: radovi forumasa sa ubrzanog kursa pbp

Postby pedja089 » 17-01-2010, 16:45

Odlicno, ovo se moze iskoristiti i za sijalicu uz jedan tranzistor...
User avatar
pedja089
 
Posts: 6240
Joined: 20-02-2007, 14:50
Location: Sremska Mitrovica,Novi Sad - Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Postby Branez » 17-01-2010, 16:48

Pedja, jesi vidio šta rade tvoji učenici! Image
Real Radios Glow in the Dark!
Branez
 
Posts: 443
Joined: 22-04-2008, 16:27
Location: Maribor(SLO) Koprivnica(HR)

Re: radovi forumasa sa ubrzanog kursa pbp

Postby niho » 17-01-2010, 17:01

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..
User avatar
niho
 
Posts: 1236
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: radovi forumasa sa ubrzanog kursa pbp

Postby VFDisplay » 17-01-2010, 17:21

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
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


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!
moje novo audio pojacalo: http://www.youtube.com/watch?v=lErMjEeCITQ ;))
VFDisplay
 
Posts: 515
Joined: 01-08-2009, 20:18

Re: radovi forumasa sa ubrzanog kursa pbp

Postby pedja089 » 17-01-2010, 17:29

@Branez, vidim, i drago mi je stro nije sve ono uzalud kucano.
@niho samo tako nastavi.
@ VFDisplay svaka cast.
User avatar
pedja089
 
Posts: 6240
Joined: 20-02-2007, 14:50
Location: Sremska Mitrovica,Novi Sad - Srbija

Re: radovi forumasa sa ubrzanog kursa pbp

Postby niho » 17-01-2010, 17:29

@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!
User avatar
niho
 
Posts: 1236
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: radovi forumasa sa ubrzanog kursa pbp

Postby niho » 17-01-2010, 17:35

@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 :)
User avatar
niho
 
Posts: 1236
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: radovi forumasa sa ubrzanog kursa pbp

Postby pedja089 » 17-01-2010, 17:44

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 :!:
User avatar
pedja089
 
Posts: 6240
Joined: 20-02-2007, 14:50
Location: Sremska Mitrovica,Novi Sad - Srbija

PreviousNext

Return to Mikrokontroleri - PIC

Who is online

Users browsing this forum: No registered users and 1 guest

GOOGLE