Fortsatt problem med tidsfördröjning

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
BOTTNA
Inlägg: 7
Blev medlem: 13 augusti 2007, 18:47:46
Ort: DINGLE

Fortsatt problem med tidsfördröjning

Inlägg av BOTTNA »

Jag har inte fått fördröjning i µs,att fungera.Som jag skrev tidigare,så fungerar fördröjningen
i ms,men när jag ändrar till fördröjning i µs,så fungerar det inte.Jag använder Mikrobasic och
Velleman PIC-programmerare K4048.Jag använder PIC16F628, med kristall på 4 mhz.
Jag har provat med högre kristallfrekvens,men med samma resultat.Är det någon inställning
som skall ändras?I så fall vad?
Är det någon som har något tips så är jag mycket tacksam.
Evald
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Fortsatt problem med tidsfördröjning

Inlägg av sodjan »

Fixa ett test-case som visar det du upplever som ett problem.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Fortsatt problem med tidsfördröjning

Inlägg av TomasL »

Hur är den konfigurerad, vilken klockfrekvens kör du?
BOTTNA
Inlägg: 7
Blev medlem: 13 augusti 2007, 18:47:46
Ort: DINGLE

Re: Fortsatt problem med tidsfördröjning

Inlägg av BOTTNA »

Hej igen!
OK,här är en förenklad kod.
Main:
TrisA=1
TrisB=0
While (1)
Cmcon=7
'***********************
If (portA.0=1)
Then PortB.0=1
Delay_ms(100)
PortB.0=0
Delay_ms(150)
Else PortB.0=0
'**********************
End if
Wend
End.


Detta är tiden i ms.Om jag ändrar till µS,så fungerar det inte!
Jag har inte tidigare använt mig av fördröjning i µs.
Jag har provat med både 4 och 20 Mhz,med samma resultat.
Det är möjligt att det är någon inställning som skall ändras,men jag vet för lite
om programmering.
Jag håller på med ett projekt där man skall ställa in drivpulser till en pulstransformator,
mellan 6-35 µs
Hoppas någon vill hjälpa mig!
Evald
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Fortsatt problem med tidsfördröjning

Inlägg av sodjan »

Använd code-taggarna så det blir läsbart...

> Jag håller på med ett projekt där man skall ställa in drivpulser till en pulstransformator, mellan 6-35 µs

Det är nog fel verktyg för att hålla med tider i den skalan.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Fortsatt problem med tidsfördröjning

Inlägg av TomasL »

Vi kan säkert hjälpa, men då måste du svara på de frågor vi ställer.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Fortsatt problem med tidsfördröjning

Inlägg av johano »

Varför postar du koden som fungerar och inte den som inte fungerar??

/johan
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Fortsatt problem med tidsfördröjning

Inlägg av sodjan »

> ...så fungerar det inte!

*Vad* är det som inte fungerar ? Och hur fungerar det då ?

Det är ju väldigt svårt, för att inte säga omöjligt, att svara
på detta om man inte vet vad det är du vill uppnå. D.v.s vad
hela applikationen är tänkt att "göra", så att säga.

Du nämner en "pulstransformator", men vi vet ju ingenting om den.
Finns det datablad ? Den ska tydligen ha 6-35 us pulser ? Ska det vara variabelt
inom det intervallet ? Och i så fall, hur snabbt och hur ofta ska det ändras ?

Notera också att det finns en Delay_Cyc(). Kan vara ett alternativ vid korta
fördröjningar...
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Fortsatt problem med tidsfördröjning

Inlägg av Icecap »

Men vänta nu lite... De Delayus() funktioner som finns fungerar INTE med variabler, enbart med konstanter (fasta värden vid kompileringen)! Är det något så enkelt kanske?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Fortsatt problem med tidsfördröjning

Inlägg av sodjan »

Men det *är* ju konstanter i kodexemplet som visades (?).
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Fortsatt problem med tidsfördröjning

Inlägg av Icecap »

Javisst - och då är det Delay_ms() som används. TS pratar om "Jag håller på med ett projekt där man skall ställa in drivpulser till en pulstransformator,
mellan 6-35 µs" och det verkar som variabler i mitt tycke...

Men grunden till alla problem är nog egentligen att TS har vald helt fel sätt att lösa uppgiften till att börja med.
BOTTNA
Inlägg: 7
Blev medlem: 13 augusti 2007, 18:47:46
Ort: DINGLE

Re: Fortsatt problem med tidsfördröjning

Inlägg av BOTTNA »

Hej!
Jag kommer här med beskrivning av min pulstrafo.Det är en EFD 30,och den skall lämna
sekundspänning i fyra steg:2500,2000,1500 och 1000 volt.För att uppnå detta så skall
primärlindningen matas med korta spänningspulser,34µs för att ge 2500 volt,24µs för att ge
2000 volt,16µs för att ge 1500 volt och 6µs för att ge 1000 volt.
Till detta har jag försökt med en PIC16F628,med en klockfrekvens på 4 MHz.Jag har också
provat med 20MHz,utan resultat.Om jag skriver "delay_ms(",så kommer det upp en liten
textremsa"Time_In_ms:word".Om jag byter ut "ms" mot "µs",så kommer det inte upp någon
textremsa,och programmet fungerar inte.
Jag hoppas att jag har lämnat en tillräckligt tydlig beskrivning,så att alla förstår vad
mitt problem är! Koden som jag har provat med har jag skrivit ned tidigare!
TomasL fråger hur kretsen är konfigurerad.Jag vet inte hur man konfigurerar en PIC!
När jag skriver programm i MikroBasic så klickar jag på "default" i "New project",och då
då har alla andra programm fungerat.
Om det är någon som vet hur detta skall lösas,så är jag tacksam för ett tips!
MVH Evald
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Fortsatt problem med tidsfördröjning

Inlägg av johano »

Är du säker på att det ska vara "µs" och inte "us"?
delay_us() verkar annars mycket vanligare (om man googlar) än delay_µs()

/johan
BOTTNA
Inlägg: 7
Blev medlem: 13 augusti 2007, 18:47:46
Ort: DINGLE

Re: Fortsatt problem med tidsfördröjning

Inlägg av BOTTNA »

Hej!
Tack,Johan detta löste problemet!Som jag har slitit mitt hår! Tack!
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Fortsatt problem med tidsfördröjning

Inlägg av bearing »

Det låter som att du driver en helt vanlig transformator. Har jag då rätt i att signalen ska vara periodisk? Är det då inte bättre att använda PWM-modulen? Förutom att den underlättar när pulslängden ska ändras utan att ändra periodtiden, erbjuder den dessutom 4xhögre upplösning än delay_us().
Senast redigerad av bearing 9 november 2011, 17:25:30, redigerad totalt 1 gång.
Skriv svar