pic simulator ide

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
mirel
Napredujem
Napredujem
Posts: 108
Joined: 05-06-2006, 07:41
Location: BIH

pic simulator ide

Post by mirel »

Isprogramirao sa PICF628 u basic compileru u pic sumulator ide programu
i sve to lijepo prebacio preko ic-prog u pic ali na kraju isprogramiran pic nece da radi iso kao da oscilator u njemu nece da se vrti


pic je na šemi spojen ovako

rb0 - dolazi signal sa tsop
rb3 - ulaz (prekidac) + ili gnd
rb4 ,5 ,6 , 7 izlazi
napojen sa 5v je spojen gdje treba da napaja pic

svi ostali pinovi vise u zraku


evo mog koda pa ako možete da mi pomognete



Define CONF_WORD = 0x3f38



Dim irpulse_length(13) As Word
Dim xx As Byte
Dim command As Byte
Dim commandizmemorije As Byte
Dim b As Byte



b = 0
TRISB = %00001101
TRISA = %00000000


INTCON.T0IE = 1 'enable Timer0 interrupts
INTCON.GIE = 1 'enable all un-masked interrupts
OPTION_REG.T0CS = 0 'set Timer0 clock source to internal instruction cycle clock


WaitMs 2000
RB7 = 0
RB4 = 1
WaitMs 2000
RB4 = 0
RB5 = 1
WaitMs 2000
RB5 = 0
RB6 = 1
WaitMs 2000
RB6 = 0
RB7 = 1
WaitMs 2000
RB7 = 0




getstartbits:
Dim irpulse_length1(13) As Byte

'poništenje varijabli
For xx = 1 To 12
irpulse_length1(xx) = 0
Next xx
'___________________



'ServoIn PORTB.0, irpulse_length1(0)



If irpulse_length1(0) < 200 Then
WaitMs 100
Goto getstartbits
Endif
irpulse_length1(0) = 0

For xx = 1 To 12
'ServoIn PORTB.0, irpulse_length1(xx)
Next xx






If irpulse_length1(1) < 100 Then
command.0 = 0
Else
command.0 = 1
Endif
If irpulse_length1(2) < 100 Then
command.1 = 0
Else
command.1 = 1
Endif
If irpulse_length1(3) < 100 Then
command.2 = 0
Else
command.2 = 1
Endif
If irpulse_length1(4) < 100 Then
command.3 = 0
Else
command.3 = 1
Endif
If irpulse_length1(5) < 100 Then
command.4 = 0
Else
command.4 = 1
Endif
If irpulse_length1(6) < 100 Then
command.5 = 0
Else
command.5 = 1
Endif
If irpulse_length1(7) < 100 Then
command.6 = 0
Else
command.6 = 1
Endif
If irpulse_length1(8) < 100 Then
command.7 = 0
Else
command.7 = 1
Endif








If RB4 = 1 Then
Write 1, command
RB4 = 0

RB5 = 1 'led
Else
Read 1, commandizmemorije
RB6 = 1 'led
If command = commandizmemorije Then
If RB7 = 1 Then
RB7 = 0
Else
RB7 = 1
Endif
Endif
Endif

WaitMs 2000
Goto getstartbits

'RB5 = 0
RB6 = 0

End






On Interrupt 'Timer0 interrupt routine
WaitMs 100
If RB3 = 0 Then
b = 0
Endif

If RB3 = 1 And b = 0 Then
RB4 = 1
b = 1
'WaitMs 1
Endif



INTCON.T0IF = 0 'enable new TMR0 interrupts
Resume
User avatar
mirel
Napredujem
Napredujem
Posts: 108
Joined: 05-06-2006, 07:41
Location: BIH

Post by mirel »

evo i sema.Ne znam fali li sta ovome,oscilator je inetrni tako mislim da je to to.

http://www.elektronika.ba/forum/uploadz ... _sema1.JPG
User avatar
Drago_Zg
Odlično uznapredovao
Odlično uznapredovao
Posts: 583
Joined: 16-09-2008, 19:40

Post by Drago_Zg »

Znajuči osnovne postulate programiranja, a pic basic kad sam ga vidio
nikad nisam bio sretan. Napisao si na jednom mjestu END. To za pic 16F628 znači kraj. time si mu dao do znanja da dalje nema ništa više. Uredno si počeo dalje pisati program. To znači drugim riječima to prepiši prije naredbe END. Kompajliraj i probaj programirati.
User avatar
mirel
Napredujem
Napredujem
Posts: 108
Joined: 05-06-2006, 07:41
Location: BIH

Post by mirel »

end moram staviti tu jer da bi napisao "On interupt" u pic basicu mora ici ovako ,kako sam ja upoznat sa pic basicom.

Imate li neko drugo rjesenje i neki drugi sofware za programiranje ,u asembleru ne znam radit a basic mi je idealno rjesenje.

Zanima me da nisam mozda nesto na semi pogresno spojio(npr zauzeo pinove za input ili output koje nisam smjeo) ili pogrijesio sa konfiguracijskim bitom na poceku koda,koristim interni oscilator.
User avatar
Drago_Zg
Odlično uznapredovao
Odlično uznapredovao
Posts: 583
Joined: 16-09-2008, 19:40

Post by Drago_Zg »

Daj opisi shemu, sto si s njom htio da napraviš? Htio sam da pomognem ali odmah na početku sam se ogradio.
User avatar
mirel
Napredujem
Napredujem
Posts: 108
Joined: 05-06-2006, 07:41
Location: BIH

Post by mirel »

semu sam poslao u postu gore.
to je ustvari dekoder za TV REMOTE .zelim da prvo memorisem kod sa daljinskog u eprom.da mi prebacio pic u memori mod treba da imam logicku jedinicu na rb3.ulaz za ir signal je na rb0 gdje sam postavi tsop ir receiver.

sve to je dobro postavljeno jos samo da proradi pic.ako hoces mogu i asembler kod poslati


ovaj dio na pocetku koda
WaitMs 2000
RB7 = 0
RB4 = 1
WaitMs 2000
RB4 = 0
RB5 = 1
WaitMs 2000
RB5 = 0
RB6 = 1
WaitMs 2000
RB6 = 0
RB7 = 1
WaitMs 2000
RB7 = 0

sam postavio iz razloga da vidim jel mi proradio pic kad upalim sklop,medjutim nece ni da mrdne kako da je mrtav, isto kao da interni oscilator ne radi

pa eto nadam se da sam dao dovoljno informacija
User avatar
mirel
Napredujem
Napredujem
Posts: 108
Joined: 05-06-2006, 07:41
Location: BIH

Post by mirel »

riješio sam problem.sve je bilo u konfiguracijskom wordu.
kada sam isključio mclr sve je proradilo
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Post by pedja089 »

mclr ide preko otpornika na +, osim ako se koristi interni.
a ubuduce seme crtaj u nekom prikladnom programu, kao sto je eagle, ili slicno. u ewb bas i nije pregledno...
Post Reply