Pic ile taşınabilir aygıt yapımı

Başlatan ahmetgokce01, 03 Eylül 2012, 15:27:35

ahmetgokce01

     Hocam tekrar belirtiyorum picte saat için zaten Timer1 T1OSO T1OSI uclarına 32.768KHz kristal bağlı ve saat bu şekilde çalışıyor aynı zamanda main fonksiyonu için dahili osilatörü çalışıyor sistemin çalışmasında bir sıkıntı yok zamanda sapma da yok şuan ki sıkıntım pici uyuttuğumda sistemin durması saatin, programın, herşeyin durması. Uyandığında kaldığı yerden devam ediyor yani nasıl bir yol izlerim de uyurken saat değerlerininde dönmesini sağlarım yani örnek verecek olursam;

     Saat 12:00 ve alarmı 12:50'ye kurduk, sistem uyku modunda ama saat arka planda sayıyor olacak saat 12:50 olduğunda uyanacak alarmını çalacak işlemini yapacak sonra tekrar uykuya girecek yapmak istediğim bu belki picte böyle birşey mümkündür ya da mümkün değildir onu bilemiyorum.

     Ama "X-Fi" arkadaşın dediği gibi her saniye uyandırıp işlemini yaptırıp tekrar uyutarak güç tüketimini düşürebilir miyim onu devre üzerinde ölçümleri yaptıktan sonra sonuçları yazayım.

serdararikan

Alıntı yapılan: X-Fi - 04 Eylül 2012, 13:16:59
32.768khz kristalini Timer1 T1OSO T1OSI uclarına gir 1 sn de bir uyanması için gerekli ayarları yap TMR1IF kesmesini kur pic i uyut.

Her saniye başında pic uyansın ekranı güncellesin tekrar uyusun.

Bu şekilde çözüme ulaşırsın. dahada akım kazanmak istiyorsan saniye göstergesini kaldır pici daha uzun uyut.

MSP430 lar mips modunda 200uA çekiyor ancak böle bi uygulama için gereksiz yere ar-ge yapmış olabilirsin bece pic ile yapmak en güzeli.

Xi-Fi meydanlara bomba gibi bir dönüş yapmışsın.tebrikler...

ahmetgokce01

Hocam maalesef pici uyuttuktan sonra donanımsal kesme olmadığı sürece uyanmadı onun için her saniye uyutup uyandırma olmadı

ahmetgokce01

Arkadaşlar yok mu bilgisi tecrübesi olan bu konuda yapmak istediğim uyku modunda iken saatin çalışması saati geldiğinde uykudan uyanıp işlemini yapıp tekrar uyuması?

diot

Daha önce de söylemiştim. Harici realtime clock kullan bunlar micro amperler seviyesinde akım çeker. Bakınız pc ana kartlarının timer ları ) standart (cr2032) 3 volt harici pille 4-5 sene. Tuşa bastığında pic uykudan kalkar ve realtime clock okur görevini yapar yeniden uykuya yatar.  İşlem basit ama iki işlemide tek işlemciyle yapmaya çalıştığın için çok uğraşırsın.
NOT:dahili alrm devresini kurarsan pic'i uykudan uyandırabilir.

CLR

Alıntı yapılan: ahmetgokce01 - 06 Eylül 2012, 14:40:56
Hocam maalesef pici uyuttuktan sonra donanımsal kesme olmadığı sürece uyanmadı onun için her saniye uyutup uyandırma olmadı

WDT'yi config ayarlarından software kontrollü yap, sonra uyutmadan önce WDT'yi istediğin kadar süreye ayarla(1-2-4sn vs), sonra pic'i uyut süre dolunca WDT reset yerine, işlemciyi kaldığı yerden devam ettirecektir.
Knowledge and Experience are Power

ahmetgokce01

Arkadaşlar ben sorumu şu şekilde daraltayım bir makalede pic uyku modunda iken timer1 sayıcısının bağımsız olarak (harici kristal bağlı) sayacağı belirtilmiş bunun la ilgili CCS C kod örneği nasıl olmalı ben bulamadım

ahmetgokce01

Alıntı yapılan: X-Fi - 04 Eylül 2012, 13:16:59
32.768khz kristalini Timer1 T1OSO T1OSI uclarına gir 1 sn de bir uyanması için gerekli ayarları yap TMR1IF kesmesini kur pic i uyut.

Her saniye başında pic uyansın ekranı güncellesin tekrar uyusun.

Bu şekilde çözüme ulaşırsın. dahada akım kazanmak istiyorsan saniye göstergesini kaldır pici daha uzun uyut.

MSP430 lar mips modunda 200uA çekiyor ancak böle bi uygulama için gereksiz yere ar-ge yapmış olabilirsin bece pic ile yapmak en güzeli.

hocam bu dediğinizi ccs c de nasıl yapacağız ?

X-Fi

Kod yazmasını bilmiyorum :) sadece mantığını söyleyebilirim gerisi size kalmış.


TMR1 ile uyandıramıyorsanız 2. yöntem TMR1 saati saysın, WDT yi yaklaşık 1 sn ye ayarlayın, saati sayan tmr1 ve kristal olacağı için saat şaşma olmasın ekran güncellemesini wdt den uyanınca yapsın.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

arslan74

Merhaba,

Timer'i COMPARATOR MODULE olarak ayarla. Timerin clock girişini harici bacaktan yapacaksın ve timeri COMPARATOR MODULE olarak secip Timer süresini bir saniyeye ayarlayacaksın. Sonra uykuya yatıracaksın. Herbir saniyede uykudan uyanır. sende işlemini yapib tekrar işlemciyi uyutursun. Böylelikle istediğini yapmış olursun.

Yada içinde RTC olan PICleri kullanabilirsin. Fiyatları cok ucuzladı. Hazır RTC lı kullanırsan işlemcini zaman hesaplarıyla meşgul etmessin. Onun yerine kendisi otomatik yapacaktır.

Selamlar