teskkurler arkadaslar prg yi yazdim

Başlatan sagamen, 22 Ocak 2006, 16:52:49

sagamen

teskkurler arkadaslar  ben yazd1mm
herkEse kolay gelsin

Erol YILMAZ

3 adet soft PWM ile çıkışları değiştirerek istediğin şeyi elde edebilirsin.
Nette bir ara böyle bir devre görmüştüm...

Bir de mesajı tek bir başlığa atmanız yeterli...
Buradan devam edebilirsiniz.

sagamen

SADECE CCS DE YAZILMIS BIR PROGRAMA IHTIYACIM VAR  DEVREYI NASIL GOSTEREBILIRIM?
:roll:
herkEse kolay gelsin

picusta

Bu soruyu eproje sitede haber olarak eklemissiniz. Devreyi zaten internetten bulmussunuz.
bi de su forumlari kullanmayi ögrenseniz, CCS'i akabinde sökersiniz.

sagamen

HERKES  ANASININ KARNIN ORGENMEDIKI BEN BILEYIM  ARKADAS SADECE ISTEDIGIM  CCS DE YAZILMIS  BI PROGRAM
herkEse kolay gelsin

OG

sagamen sakin ol. CCS yi bilmiyor olabilirsin ama panoları kullanmayı bilirsin
Alıntı YapHERKES ANASININ KARNIN ORGENMEDIKI BEN BILEYIM ARKADAS SADECE ISTEDIGIM CCS DE YAZILMIS BI PROGRAM
Büyük harf bağırmaktır bilirsin. Daha 3. mesajında üstelik.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

sagamen

tamam kardesim olayi yeni fark ettim   3 ana renkten  degisik renkler elde etmek istiyorum bunun için ccs ile yazilmis programa ihtiyacim var  teşekkürler.. :oops:
herkEse kolay gelsin

sagamen

kimse bu konu üzerinde calismadimi??? :cry: [code]
herkEse kolay gelsin

picusta

Arkadasa yardimci olun, basta biraz bagirdi ama özür diledi.
Bahsettigi devre su: http://www.wrighthobbies.net/bots/lamp/index.htm
Orda baska MCU için basic'te yazilmis kod var, bunu bi zahmet pic - CCS'ye tercüme etmek gerekiyor. Veya elinde daha önce böyle bir program yazan varsa oda olur herhalde. Hos bir devreye benziyor.
Ben ne CCS'de ne Basic'te (Commodore 64 ve Quickbasic hariç) program yazdim.

Petek

Daha önce uğraşmadığım için yardımcı olamayacağım. Ama arkadaşımız C öğrenmek için o programı C ye dönüştürmeye başlarsa takıldığı noktalarda yardımcı olurum. Ama en temel C tanımlamalarında soru gelirse cevaplayamam.

Kolay gelsin..
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

OG

RGB Ledler üzerine çalışmam var ama CCS olunca hiç anlamıyorum.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

sagamen

bu programı ccs ye cevırecek bır arkadas varmı


'Dim Variables
Dim I As Byte , Tmp As Long
Dim Timeslice As Long , Timebase As Long
Dim Random1 As Word , Random2 As Word
Dim Flashmode As Byte

Dim Reddelay(5) As Long
Dim Greendelay(5) As Long
Dim Bluedelay(5) As Long

Dim Redflag(5) As Byte
Dim Greenflag(5) As Byte
Dim Blueflag(5) As Byte

'Define Alias's
Greenbrightness Alias Pwm1a
Bluebrightness Alias Pwm1b
Redbrightness Alias Ocr2

'LED Aliases
Red Alias Portc
Red1 Alias Portc.0
Red2 Alias Portc.1
Red3 Alias Portc.2
Red4 Alias Portc.3
Red5 Alias Portc.4

Green Alias Porta
Green1 Alias Porta.0
Green2 Alias Porta.1
Green3 Alias Porta.2
Green4 Alias Porta.3
Green5 Alias Porta.4

Blue Alias Portb
Blue1 Alias Portb.0
Blue2 Alias Portb.1
Blue3 Alias Portb.2
Blue4 Alias Portb.3
Blue5 Alias Portb.4


'Define Constants
Const True = 1
Const False = 0

'Constants for Dazzle Mode
Const Flash = 1
Const Dark = 1000

'Config statements
Config Timer0 = Timer , Prescale = 64
Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Timer2 = Pwm , Prescale = 64 , Compare Pwm = Clear Up , Pwm = On

'Configure ports for Output or Input
Config Portb = Output 'Set the Port B pins to output
Config Porta = Output
Config Portc = Output
Config Portd = Output
Config Pind.2 = Input
Portd.2 = 1

On Timer0 T0_int

Bluebrightness = 0
Greenbrightness = 0
Redbrightness = 0
Flashmode = 1

'Enable external interrupt
Enable Int0 'Used for mode switch

Enable Timer0 'Used as a general timer
Enable Timer1 'Used for 2 PWM channels
Enable Timer2 'Used for 3rd PWM channel
Enable Interrupts
On Int0 Buttonpushed 'Interrup routine triggered by the switch

'Start the timers
Start Timer0
Start Timer1
Start Timer2


'Turn off all LEDs
Red = 0
Green = 0
Blue = 0

'Set default brightness
Redbrightness = 200
Bluebrightness = 200
Greenbrightness = 200

'Set startup mode to be off
'Start the light by pushing the button
Flashmode = 0

'Main loop
'The flashmode variable is set in the Buttonpushed routine.
'Since that is interrupt driven, we don't need to poll the switch.

Do
Select Case Flashmode

Case 0
'Power off
'Powerdown mode will reduce power consumption
'but can still be awakened by an external interrupt
Blue = 0
Red = 0
Green = 0
Powerdown
'return from powerdown
'Disable the external interrupt while we do some housework
Disable Int0
Red = 1
Blue = 1
Green = 1
Redbrightness = 200
Greenbrightness = 200
Bluebrightness = 200

'Debounce the switch
Do
If Pind.2 = 1 Then Exit Do
Loop

Enable Int0
'Default to mode 1 after powerdown
Flashmode = 1

Case 1
'Color Cycling
Random1 = Rnd(10)
Select Case Random1
Case 1
Do
'cascade up and down
Red = 0
Blue = 0
Green = 0

'red first
Red = 1
For I = 1 To 5
If Flashmode <> 1 Then Exit For
Waitms 50
Red = Red * 2
Next I
Red = 0
'Blue
Blue = 1
For I = 1 To 5
If Flashmode <> 1 Then Exit For
Waitms 50
Blue = Blue * 2
Next I

Blue = 0
'green
Green = 1
For I = 1 To 5
If Flashmode <> 1 Then Exit For
Waitms 50
Green = Green * 2
Next I
Green = 0
Loop Until Flashmode <> 1

End Select


Case 2
'All blue
Bluebrightness = 0
Blue = 31
Green = 0
Red = 0
'ramp up blue
For I = 1 To 200
Bluebrightness = I
If Flashmode <> 2 Then Exit For
Waitms 10
Next I
Do
Loop Until Flashmode <> 2
Blue = 0
Bluebrightness = 200


Case 3
'All Red
Redbrightness = 0
Red = 31
Blue = 0
Green = 0
For I = 1 To 200
Redbrightness = I
If Flashmode <> 3 Then Exit For
Waitms 10
Next I
Do
Loop Until Flashmode <> 3
Red = 0
Redbrightness = 200


Case 4
'All Green
Greenbrightness = 0
Green = 31
Blue = 0
Red = 0
For I = 1 To 200
Greenbrightness = I
If Flashmode <> 4 Then Exit For
Waitms 10
Next I
Do
Loop Until Flashmode <> 4
Green = 0
Greenbrightness = 200

Case 5
'All Colors
Red = 31
Green = 31
Blue = 31
Greenbrightness = 0
Bluebrightness = 0
Redbrightness = 0
For I = 1 To 200
Bluebrightness = I
Redbrightness = I
Greenbrightness = I
If Flashmode <> 5 Then Exit For
Waitms 10
Next I
Do
Loop Until Flashmode <> 5


Case 6
'Twinkle mode
'Each LED/Color will randomly blink momentarily

For I = 1 To 5
'Check Red
If Timeslice > Reddelay(i) Then
If Redflag(i) = False Then
Redflag(i) = True
Reddelay(i) = Reddelay(i) + Flash
Select Case I
Case 1
Red1 = True
Case 2
Red2 = True
Case 3
Red3 = True
Case 4
Red4 = True
Case 5
Red5 = True
End Select
Else
If Timeslice > Reddelay(i) Then
Redflag(i) = False
Reddelay(i) = Rnd(dark)
Reddelay(i) = Reddelay(i) + Timeslice
Select Case I
Case 1
Red1 = False
Case 2
Red2 = False
Case 3
Red3 = False
Case 4
Red4 = False
Case 5
Red5 = False
End Select
End If
End If
End If

Next I

For I = 1 To 5
'Check blue
If Timeslice > Bluedelay(i) Then
If Blueflag(i) = False Then
Blueflag(i) = True
Bluedelay(i) = Bluedelay(i) + Flash
Select Case I
Case 1
Blue1 = True
Case 2
Blue2 = True
Case 3
Blue3 = True
Case 4
Blue4 = True
Case 5
Blue5 = True
End Select
Else
If Timeslice > Bluedelay(i) Then
Blueflag(i) = False
Bluedelay(i) = Rnd(dark)
Bluedelay(i) = Bluedelay(i) + Timeslice
Select Case I
Case 1
Blue1 = False
Case 2
Blue2 = False
Case 3
Blue3 = False
Case 4
Blue4 = False
Case 5
Blue5 = False
End Select
End If
End If
End If

Next I
For I = 1 To 5
'Check Red
If Timeslice > Greendelay(i) Then
If Greenflag(i) = False Then
Greenflag(i) = True
Greendelay(i) = Greendelay(i) + Flash
Select Case I
Case 1
Green1 = True
Case 2
Green2 = True
Case 3
Green3 = True
Case 4
Green4 = True
Case 5
Green5 = True
End Select
Else
If Timeslice > Greendelay(i) Then
Greenflag(i) = False
Greendelay(i) = Rnd(dark)
Greendelay(i) = Greendelay(i) + Timeslice
Select Case I
Case 1
Green1 = False
Case 2
Green2 = False
Case 3
Green3 = False
Case 4
Green4 = False
Case 5
Green5 = False
End Select
End If
End If
End If

Next I
End Select

Loop


End

Buttonpushed:
'Interrupt triggered
Waitms 100 'Debounce the switch
Do
Waitms 100
If Pind.2 = 1 Then Exit Do 'Wait for person to release the switch

Loop

Incr Flashmode 'Change the flash mode variable
If Flashmode > 6 Then Flashmode = 0
Return



T0_int:
'Interrupt Routine for timer used in twinkle mode
Incr Timeslice
Timer0 = 100

Return
herkEse kolay gelsin

aYe

@sagamen

Selam,

Buna benzer bişeyi zamanında havuzlar için yapmıştım, ilk başta tiryaklı yaptik sonra anladık ki havuz içinde 220 lamba olmazmış :D Daha sonra 24V lambalar için mosfet ve pwm ile yaptik. Piclerde 3 tane donanım pwm yok bu durumda ya başka mcu'kullanacaksin ya interrupt kullanarak yazilim pwm yapicaksin. Basic'den C ye kod çevirme isteğinide algılayamadım öğreniceksen sorularını sırala cevaplarını paketle işi bitir yok çalışsın kafiyse basic kodu derle. Ben sifirdan yaziyim diyicem ama CCS ansi olmadiği için kod'u yazip veremiyorum ama bilen arkadaşlar yardimci olacaktir. Anladığım kadarıyla 3 renk led ile olabilecek bütün renkleri görmek istiyorsun yani 3*8 bit pwm yaparsan 255*255*255 teorik olarak 16581375 renk görüceksin pardon 16581374 siyah renk değildir. Gerçi marshall'ın imalat müdürü bile siyah renktir diyor, demekki yapamamışsın siyahını :D Yada siyah gerçekten siyah mıdır? Açık siyah koyu siyah varmidir? Neye göre siyah kime göre siyah :roll:
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

ahmet2004



Arkadaşım burada örnek uygulamalar var.Bir incele istersen.

Rgb led


aYe

@OG hocam

Fizik kanunları sektörden sektöre değişiyor mu ki? Bence boyacılar siyahı yapamiyorlar siyahımsı yaptık demeyi de gururlarına yediremiyolar. Sonra benim iddaa kaybetmeme sebep oluyorlar. Sony bu sıralar en iyi lcd'yi ürettiğini söylüyor, digerlerine göre farkli geliştirdikleriyse R yada G yada B değil sadece siyahımsı teknolojilerini çok ilerletmişler ama yine de siyah değil...
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)