Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => Konuyu başlatan: overlok - 22 Şubat 2017, 00:42:31

Başlık: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: overlok - 22 Şubat 2017, 00:42:31
Merhabalar;
Elimde 1. tuşa basılınca tam, 2. tuşta en az parlaklıkta, 3 tuşta ise yarım olacak şekilde yanan led uygulaması kodları var. Bu kodları, butonları kaldırıp 4x3 tuş takımı ekleyerek hangi tuşa basıldıysa (örneğin 1 nolu tuşa basınca en az parlaklıkta, 9 nolu tuşa basınca en yüksek parlaklıkta, 0 nolu tuşa basınca tamamen sönecek şekilde) ona göre ledin parlaklığını ayarlamak istiyorum . Yardımcı olur musunuz? Elinde hazır kod olan var mıdır?
Elimdeki kodlar:
/*
Lab 9: Pulse Width Modulation
Copyright @ Rajendra Bhatt, 2010.
Description: CCP module generating PWM
MCU: PIC16F628A
Oscillator: XT, 4.0 MHz, MCLR Enabled
*/
sbit UP at RB0_bit;
sbit DOWN at RB1_bit;
sbit CENTER at RB2_bit;
unsigned short new_DC, current_DC;

void debounce(){
  Delay_ms(300);
}

void main() {
CMCON = 0x07; // Disable comparators
PORTB = 0x00;
TRISB = 0b00000111; // RB0, RB1 input, RB3 (PWM1) output
PWM1_Init(5000);    // PWM module initialization (5KHz)
new_DC = 0;         // Initial value of variable Duty Cycle
current_DC = 0;
PWM1_Start();       // Start PWM1 module with Zero DC
PWM1_Set_Duty(current_DC);
do {
  if (!UP){      // If the button connected to RB0 is pressed
   debounce();
   if (new_DC < 250)      // Don't go above 250
   new_DC = 249 ; // increment Duty Cycle by 25
  }
  if (!DOWN) {   // If the button connected to RB1 is pressed
   debounce();
   if (new_DC !=0)        // Don't go below 0
   new_DC= 1 ; // Decrement Duty Cycle by 25
  }
  if (!CENTER) {   // If the button connected to RB1 is pressed
   debounce();
   if (new_DC !=1 | 249)        // Don't go below 0
   new_DC= 100 ; // Decrement Duty Cycle by 25
  }
  if (current_DC != new_DC) {
   current_DC = new_DC ;
   PWM1_Set_Duty(current_DC); // Change the current DC to new value
  }
} while(1);
}  // END main()
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: vitruvius - 22 Şubat 2017, 01:38:43
Niye her şey için hazır kod isteniyor anlayamıyorum. Biraz düşünüp üretsek olmuyor mu?

İstediğin şey zor bir şey değil. Projeyi iki aşamaya böl.

Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: overlok - 22 Şubat 2017, 09:59:06
@vitruvius
Yaşım 35, grafikerim. Hobiciyim. Biraz düşünebilmek için temeli olması gerekiyor insanın.
Kodun orijinali 2 tuşluydu. Tuşlara her basışta parlaklık artıp /azalıyordu. 3 tuşlu olarak yukarıdaki haline çevirdim ama 4x3 tuş takımı olarak kafam almadı.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: mehmet - 22 Şubat 2017, 10:14:53
Farklı meslek ve yaşlardan arkadaşlarımız,
abilerimiz var burada. Hala bir şeylerle
uğraşmaktadırlar. Yaş olayının arkasina
saklanmayalım. Siz de gençsiniz daha. ;)

Eğer bu tür işleri şip-şak halletmek istiyorsanız
Arduino iyi bir çözüm olacaktır. Çok fazla
hazır örnek bulabilirsiniz.
Kolaylıklar.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: overlok - 22 Şubat 2017, 11:11:02
Haklısınız, yaşımın yanında yaptığım iş yorucu, pek zaman bırakmıyor.
Aklımda şimdi bir iki çözüm var aslında yapmak istediğimle alakalı ama tarzanca olacak. Artık akşam deneme yaparım.
Arduino iyi güzel ama yani yaptığım şey kalıcı olsun, yapıp yapıp bırakıyorum arduinoda. Hazır elimde boşta picler varken, değerlendirmek istedim
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: vitruvius - 22 Şubat 2017, 11:19:33
Bir devre semasi koyarsaniz da fena olmaz.

Ben de dil tavsiyesinde bulunayim o zaman. CCS C ile bu isleri yapmak cok daha kolay olur.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: dnacikaya - 22 Şubat 2017, 11:55:56
@overlok bence örnek kodlarla bu işi çözemezsiniz. Böyle bir projeyi siz yapmalısınız. Ama mantığı bilirseniz olur. Önce tuş takımına hakim olun. Tarama yöntemiyle 0dan 9a kadar tuşları portta görün. 2Ye basınca porta 2 yazın. Yada 9 tane ledi 0-9 değeri için kullanın. Sonra pwm değerini portta okuduğunuz değere göre değiştirin. Bu projeyi yaparsanız hem pwm hem tuştakımı kullanmayı öğrenirsiniz. Eğer c ile zorlanıyorsanız basic ile daha kolay olur. Adım adım giderseniz işler daha kolay çözülür.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: overlok - 22 Şubat 2017, 13:01:28
Alıntı yapılan: dnacikaya - 22 Şubat 2017, 11:55:56
@overlok bence örnek kodlarla bu işi çözemezsiniz. Böyle bir projeyi siz yapmalısınız. Ama mantığı bilirseniz olur. Önce tuş takımına hakim olun. Tarama yöntemiyle 0dan 9a kadar tuşları portta görün. 2Ye basınca porta 2 yazın. Yada 9 tane ledi 0-9 değeri için kullanın. Sonra pwm değerini portta okuduğunuz değere göre değiştirin. Bu projeyi yaparsanız hem pwm hem tuştakımı kullanmayı öğrenirsiniz. Eğer c ile zorlanıyorsanız basic ile daha kolay olur. Adım adım giderseniz işler daha kolay çözülür.

Alıntı yapılan: vitruvius - 22 Şubat 2017, 11:19:33
Bir devre semasi koyarsaniz da fena olmaz.

Ben de dil tavsiyesinde bulunayim o zaman. CCS C ile bu isleri yapmak cok daha kolay olur.
Zamanında çok istemiştim CCS C öğrenmeyi, hatta Serdar Çiçek'in kitabını da almıştım. Bakalım zamanla öğrenmeye çalışıcam.

Devre bu.
(https://s16.postimg.cc/eicjmg6nl/PIC16_F628_A_PWM.png) (https://postimg.cc/image/eicjmg6nl/)

Orijinal kodlar da bunlar:
/*
Lab 9: Pulse Width Modulation
Copyright @ Rajendra Bhatt, 2010.
Description: CCP module generating PWM
MCU: PIC16F628A
Oscillator: XT, 4.0 MHz, MCLR Enabled
*/
sbit UP at RB0_bit;
sbit DOWN at RB1_bit;
unsigned short new_DC, current_DC;

void debounce(){
  Delay_ms(300);
}

void main() {
CMCON = 0x07; // Disable comparators
PORTB = 0x00;
TRISB = 0b00000011; // RB0, RB1 input, RB3 (PWM1) output
PWM1_Init(5000);    // PWM module initialization (5KHz)
new_DC = 0;         // Initial value of variable Duty Cycle
current_DC = 0;
PWM1_Start();       // Start PWM1 module with Zero DC
PWM1_Set_Duty(current_DC);
do {
  if (!UP){      // If the button connected to RB0 is pressed
   debounce();
   if (new_DC < 250)      // Don't go above 250
   new_DC = new_DC + 25 ; // increment Duty Cycle by 25
  }
  if (!DOWN) {   // If the button connected to RB1 is pressed
   debounce();
   if (new_DC !=0)        // Don't go below 0
   new_DC= new_DC - 25 ; // Decrement Duty Cycle by 25
  }
  if (current_DC != new_DC) {
   current_DC = new_DC ;
   PWM1_Set_Duty(current_DC); // Change the current DC to new value
  }
} while(1);
}  // END main()

Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: vitruvius - 22 Şubat 2017, 13:04:17
Tuş takımı bağlantısı nasıl?
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: Salih - 22 Şubat 2017, 13:08:52
CCS ile yapılmış bir tuş okuma fonksiyon örneği vereyim.
Sana bir fikir verir.


char Tus_Oku()
{     
      Output_High(Pin_B4);
      Output_High(Pin_B5);
      Output_High(Pin_B6);     
      Output_Low(Pin_B4);
      Delay_ms(1);
      if (!input(Pin_B0)) Return('1');
      if (!input(Pin_B1)) Return('4');
      if (!input(Pin_B2)) Return('7');
      if (!input(Pin_B3)) Return('*');
      Output_High(Pin_B4);
      Output_Low(Pin_B5);
      Delay_ms(1);
      if (!input(Pin_B0)) Return('2');
      if (!input(Pin_B1)) Return('5');
      if (!input(Pin_B2)) Return('8');
      if (!input(Pin_B3)) Return('0');
      Output_High(Pin_B5);
      Output_Low(Pin_B6);     
      Delay_ms(1);           
      if (!input(Pin_B0)) Return('3');
      if (!input(Pin_B1)) Return('6');
      if (!input(Pin_B2)) Return('9');
      if (!input(Pin_B3)) Return('#');
      Output_High(Pin_B6);
      Return(0);
}


Keypad bağlantısı

(http://i.hizliresim.com/BroAPV.jpg)
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: vitruvius - 22 Şubat 2017, 14:18:31
Bir şey diyeceğim eğer Serdar Çiçek'in kitabı varsa orada PWM uygulaması da tuş takımı uygulaması da var. Onları okursan kendin halledersin bence. Dediğim gibi iki aşamaya ayır  projeyi. İkisini de tek tek yap, sonra birleştirirsin.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: JOKERAS - 22 Şubat 2017, 14:35:31
Overlok usta,vitruvius doğru söylüyor.
Yamalı bohça gibi oradan bir kod buradan bir kod sonra bunları birleştirip kod yazmak pek hoş bir yöntem değil.
Sizin yapacağınız kompleks olan nokta Matrix Tuş okuma,önce onu yapın derim.

Matrix Tuş okuma öyle zor bir olay değil.Senaryo taslağı şu şekilde.Gerisini deteylandırın.

1) Satır ve sutunları sürekli tara.
2) İlgili Tuş basıldığı anda Debounce kontrolü yapıp hangi sutun ile hangi Satır öpüşmüş - hanshake  olmuş bunları tespit et.
3) Satır Sutunu tespit ettiysen hangi tuş basılmış onu da bulmuşsun demektir.
4) ilgili Tuşlar basıldığında PWM Duty'ini update et.Hepsi bu.




Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: overlok - 22 Şubat 2017, 14:50:11
Alıntı yapılan: vitruvius - 22 Şubat 2017, 13:04:17
Tuş takımı bağlantısı nasıl?
Alıntı yapılan: vitruvius - 22 Şubat 2017, 14:18:31
Bir şey diyeceğim eğer Serdar Çiçek'in kitabı varsa orada PWM uygulaması da tuş takımı uygulaması da var. Onları okursan kendin halledersin bence. Dediğim gibi iki aşamaya ayır  projeyi. İkisini de tek tek yap, sonra birleştirirsin.

Alıntı yapılan: JOKERAS - 22 Şubat 2017, 14:35:31
Overlok usta,vitruvius doğru söylüyor.
Yamalı bohça gibi oradan bir kod buradan bir kod sonra bunları birleştirip kod yazmak pek hoş bir yöntem değil.
Sizin yapacağınız kompleks olan nokta Matrix Tuş okuma,önce onu yapın derim.

Matrix Tuş okuma öyle zor bir olay değil.Senaryo taslağı şu şekilde.Gerisini deteylandırın.

1) Satır ve sutunları sürekli tara.
2) İlgili Tuş basıldığı anda Debounce kontrolü yapıp hangi sutun ile hangi Satır öpüşmüş - hanshake  olmuş bunları tespit et.
3) Satır Sutunu tespit ettiysen hangi tuş basılmış onu da bulmuşsun demektir.
4) ilgili Tuşlar basıldığında PWM Duty'ini update et.Hepsi bu.



@vitruvius , @JOKERAS
Zaman buldukça bakayım o zaman. Bu kodlar mikroC ile yazılmış oluduğu için kod üzerinden gideyim istedim. Doğru yamalı bohça gibi oluyor ama napalım.
PortB= RB0, RB1, RB2, RB4 satır, RB5, RB6, RB7 sütun olarak düşünüyorum.

Alıntı yapılan: Salih - 22 Şubat 2017, 13:08:52
CCS ile yapılmış bir tuş okuma fonksiyon örneği vereyim.
Sana bir fikir verir.


@Salih hocam teşekkürler, aklıma bulunsun bu.

Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: pwm.c - 22 Şubat 2017, 19:50:18
şunu dene bakalım:

(https://s32.postimg.cc/8o3tb8l0h/keypadpwm.png) (https://postimg.cc/image/8o3tb8l0h/)

#include <16F628A.h>
#FUSES INTRC_IO, PUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT
#use delay(internal=4MHz)
#use FIXED_IO( B_outputs=PIN_B7,PIN_B6,PIN_B5,PIN_B4,PIN_B3,PIN_B2,PIN_B1,PIN_B0 )
#define sat_d   PIN_A0
#define sat_c   PIN_A1
#define sat_b   PIN_A6
#define sat_a   PIN_A7
#define sut_1   PIN_B0
#define sut_2   PIN_B1
#define sut_3   PIN_B2

char tus;
int16 pwmduty=0;
char keypad_oku()
{
   output_high(sut_1);
   output_high(sut_2);
   output_high(sut_3);
   tus=0;

   output_low(sut_1);
   if (!input(sat_a))   
      { delay_ms(10); tus=1; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=4; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=7; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0A; }
   output_high(sut_1);

   output_low(sut_2);
   if (!input(sat_a))   
      { delay_ms(10); tus=2; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=5; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=8; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0B; }
   output_high(sut_2);

   output_low(sut_3);
   if (!input(sat_a))   
      { delay_ms(10); tus=3; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=6; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=9; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0C; }
   output_high(sut_3);
     
   return tus;
}
void main() {
   setup_timer_2(T2_DIV_BY_1,255,1);
   setup_ccp1(CCP_PWM);
   set_pwm1_duty((int16)0);
   set_tris_a(0xFF);
   delay_ms(250);

   while(TRUE){
   keypad_oku();
   if(tus==1){pwmduty=100;set_pwm1_duty(pwmduty);}
   if(tus==2){pwmduty=200;set_pwm1_duty(pwmduty);}
   if(tus==3){pwmduty=300;set_pwm1_duty(pwmduty);}
   if(tus==4){pwmduty=400;set_pwm1_duty(pwmduty);}
   if(tus==5){pwmduty=500;set_pwm1_duty(pwmduty);}
   if(tus==6){pwmduty=600;set_pwm1_duty(pwmduty);}
   if(tus==7){pwmduty=700;set_pwm1_duty(pwmduty);}
   if(tus==8){pwmduty=800;set_pwm1_duty(pwmduty);}
   if(tus==9){pwmduty=900;set_pwm1_duty(pwmduty);}
   if(tus==0x0A){if(pwmduty>0){--pwmduty;}set_pwm1_duty(pwmduty);}
   if(tus==0x0B){pwmduty=0;set_pwm1_duty(pwmduty);}
   if(tus==0x0C){if(++pwmduty>1000){pwmduty=1000;}set_pwm1_duty(pwmduty);}
   }

}


hex:
:1000000000308A00BD2800002330840083130008DC
:10001000031918280130F800F701F70B0D28F80B29
:100020000C284A30F700F70B13281628800B0A28F3
:10003000080000308316860083120614831686009B
:10004000831286148316860083120615A001831678
:10005000860083120610831685178312851B3528A8
:100060000A30A30004200130A00083160517831274
:10007000051B3F280A30A30004200430A00083168B
:1000800085148312851849280A30A30004200730FC
:10009000A000831605148312051853280A30A30004
:1000A00004200A30A0000030831686008312061454
:1000B0008316860083128610831685178312851B8C
:1000C00066280A30A30004200230A000831605171A
:1000D0008312051B70280A30A30004200530A000FD
:1000E00083168514831285187A280A30A300042009
:1000F0000830A000831605148312051884280A30DE
:10010000A30004200B30A000003083168600831269
:1001100086148316860083120611831685178312B0
:10012000851B97280A30A30004200330A000831603
:1001300005178312051BA1280A30A30004200630EE
:10014000A0008316851483128518AB280A30A300FB
:1001500004200930A0008316051483120518B52861
:100160000A30A30004200C30A00000308316860063
:10017000831206152008F800E12803081F398300C0
:1001800083168E158312A201A10107309F008313ED
:100190000030F80004389200FF30831692000030DF
:1001A0008600831286110C30970095011708CF390D
:1001B0009700FF3083168500FA308312A3000420D5
:1001C0001928200BF928A2016430A1002208F900A7
:1001D0002108F800F90CF80CF90CF80CF90C780867
:1001E0009500F90C790C3039F7001708CF397704EE
:1001F00097002008023C031D1329A201C830A1006A
:100200002208F9002108F800F90CF80CF90CF80C98
:10021000F90C78089500F90C790C3039F7001708BB
:10022000CF39770497002008033C031D2E290130A5
:10023000A2002C30A1002208F9002108F800F90CD6
:10024000F80CF90CF80CF90C78089500F90C790CFD
:100250003039F7001708CF39770497002008043C9D
:10026000031D49290130A2009030A1002208F900A5
:100270002108F800F90CF80CF90CF80CF90C7808C6
:100280009500F90C790C3039F7001708CF3977044D
:1002900097002008053C031D64290130A200F430BA
:1002A000A1002208F9002108F800F90CF80CF90C5B
:1002B000F80CF90C78089500F90C790C3039F70036
:1002C0001708CF39770497002008063C031D7F29C3
:1002D0000230A2005830A1002208F9002108F800DD
:1002E000F90CF80CF90CF80CF90C78089500F90CDD
:1002F000790C3039F7001708CF39770497002008B8
:10030000073C031D9A290230A200BC30A10022083C
:10031000F9002108F800F90CF80CF90CF80CF90CAC
:1003200078089500F90C790C3039F7001708CF39A7
:10033000770497002008083C031DB5290330A2006C
:100340002030A1002208F9002108F800F90CF80C6F
:10035000F90CF80CF90C78089500F90C790C303987
:10036000F7001708CF39770497002008093C031DD0
:10037000D0290330A2008430A1002208F90021080E
:10038000F800F90CF80CF90CF80CF90C7808950049
:10039000F90C790C3039F7001708CF39770497003A
:1003A00020080A3C031DF129A108031DDA29A2082F
:1003B0000319DE2921080319A203A1032208F90069
:1003C0002108F800F90CF80CF90CF80CF90C780875
:1003D0009500F90C790C3039F7001708CF397704FC
:1003E000970020080B3C031D0A2AA201A101220844
:1003F000F9002108F800F90CF80CF90CF80CF90CCC
:1004000078089500F90C790C3039F7001708CF39C6
:100410007704970020080C3C031D332AA10A031916
:10042000A20A2208023C0318202AFF3A031D1C2AB4
:100430002108E83C0318202A0330A200E830A1007C
:100440002208F9002108F800F90CF80CF90CF80C56
:10045000F90C78089500F90C790C3039F700170879
:0A046000CF3977049700E02863000D
:02400E00103F61
:00000001FF
;PIC16F628A
;CRC=B9B7  CREATED="22-Şub-17 19:39"





Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: overlok - 22 Şubat 2017, 22:21:11
@pwm.c Valla hocam ne diyeceğimi şaşırdım. Gerçekten çok teşekkürler. Kod gayet iyi çalışıyor. Tam aklımdaki gibi olmuş. özellike * ve # tuşları böyle düşünüyodum hakikatten. Tekrar çok teşekkürler.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: ipek - 22 Şubat 2017, 23:01:40
@pwm.c
hocam,klavyenize sağlık ,pek kullanışlı olmuş,ileride eeprom'lusunuda isteriz, # * tuşlarında girilen değeri aklında tutsun,her enerji verdiğimizde ,yeniden ayar yapmayalım... :D
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: dnacikaya - 22 Şubat 2017, 23:27:58
Alıntı yapılan: pwm.c - 22 Şubat 2017, 19:50:18
şunu dene bakalım:

(https://s32.postimg.cc/8o3tb8l0h/keypadpwm.png) (https://postimg.cc/image/8o3tb8l0h/)

#include <16F628A.h>
#FUSES INTRC_IO, PUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT
#use delay(internal=4MHz)
#use FIXED_IO( B_outputs=PIN_B7,PIN_B6,PIN_B5,PIN_B4,PIN_B3,PIN_B2,PIN_B1,PIN_B0 )
#define sat_d   PIN_A0
#define sat_c   PIN_A1
#define sat_b   PIN_A6
#define sat_a   PIN_A7
#define sut_1   PIN_B0
#define sut_2   PIN_B1
#define sut_3   PIN_B2

char tus;
int16 pwmduty=0;
char keypad_oku()
{
   output_high(sut_1);
   output_high(sut_2);
   output_high(sut_3);
   tus=0;

   output_low(sut_1);
   if (!input(sat_a))   
      { delay_ms(10); tus=1; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=4; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=7; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0A; }
   output_high(sut_1);

   output_low(sut_2);
   if (!input(sat_a))   
      { delay_ms(10); tus=2; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=5; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=8; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0B; }
   output_high(sut_2);

   output_low(sut_3);
   if (!input(sat_a))   
      { delay_ms(10); tus=3; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=6; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=9; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0C; }
   output_high(sut_3);
     
   return tus;
}
void main() {
   setup_timer_2(T2_DIV_BY_1,255,1);
   setup_ccp1(CCP_PWM);
   set_pwm1_duty((int16)0);
   set_tris_a(0xFF);
   delay_ms(250);

   while(TRUE){
   keypad_oku();
   if(tus==1){pwmduty=100;set_pwm1_duty(pwmduty);}
   if(tus==2){pwmduty=200;set_pwm1_duty(pwmduty);}
   if(tus==3){pwmduty=300;set_pwm1_duty(pwmduty);}
   if(tus==4){pwmduty=400;set_pwm1_duty(pwmduty);}
   if(tus==5){pwmduty=500;set_pwm1_duty(pwmduty);}
   if(tus==6){pwmduty=600;set_pwm1_duty(pwmduty);}
   if(tus==7){pwmduty=700;set_pwm1_duty(pwmduty);}
   if(tus==8){pwmduty=800;set_pwm1_duty(pwmduty);}
   if(tus==9){pwmduty=900;set_pwm1_duty(pwmduty);}
   if(tus==0x0A){if(pwmduty>0){--pwmduty;}set_pwm1_duty(pwmduty);}
   if(tus==0x0B){pwmduty=0;set_pwm1_duty(pwmduty);}
   if(tus==0x0C){if(++pwmduty>1000){pwmduty=1000;}set_pwm1_duty(pwmduty);}
   }

}


hex:
:1000000000308A00BD2800002330840083130008DC
:10001000031918280130F800F701F70B0D28F80B29
:100020000C284A30F700F70B13281628800B0A28F3
:10003000080000308316860083120614831686009B
:10004000831286148316860083120615A001831678
:10005000860083120610831685178312851B3528A8
:100060000A30A30004200130A00083160517831274
:10007000051B3F280A30A30004200430A00083168B
:1000800085148312851849280A30A30004200730FC
:10009000A000831605148312051853280A30A30004
:1000A00004200A30A0000030831686008312061454
:1000B0008316860083128610831685178312851B8C
:1000C00066280A30A30004200230A000831605171A
:1000D0008312051B70280A30A30004200530A000FD
:1000E00083168514831285187A280A30A300042009
:1000F0000830A000831605148312051884280A30DE
:10010000A30004200B30A000003083168600831269
:1001100086148316860083120611831685178312B0
:10012000851B97280A30A30004200330A000831603
:1001300005178312051BA1280A30A30004200630EE
:10014000A0008316851483128518AB280A30A300FB
:1001500004200930A0008316051483120518B52861
:100160000A30A30004200C30A00000308316860063
:10017000831206152008F800E12803081F398300C0
:1001800083168E158312A201A10107309F008313ED
:100190000030F80004389200FF30831692000030DF
:1001A0008600831286110C30970095011708CF390D
:1001B0009700FF3083168500FA308312A3000420D5
:1001C0001928200BF928A2016430A1002208F900A7
:1001D0002108F800F90CF80CF90CF80CF90C780867
:1001E0009500F90C790C3039F7001708CF397704EE
:1001F00097002008023C031D1329A201C830A1006A
:100200002208F9002108F800F90CF80CF90CF80C98
:10021000F90C78089500F90C790C3039F7001708BB
:10022000CF39770497002008033C031D2E290130A5
:10023000A2002C30A1002208F9002108F800F90CD6
:10024000F80CF90CF80CF90C78089500F90C790CFD
:100250003039F7001708CF39770497002008043C9D
:10026000031D49290130A2009030A1002208F900A5
:100270002108F800F90CF80CF90CF80CF90C7808C6
:100280009500F90C790C3039F7001708CF3977044D
:1002900097002008053C031D64290130A200F430BA
:1002A000A1002208F9002108F800F90CF80CF90C5B
:1002B000F80CF90C78089500F90C790C3039F70036
:1002C0001708CF39770497002008063C031D7F29C3
:1002D0000230A2005830A1002208F9002108F800DD
:1002E000F90CF80CF90CF80CF90C78089500F90CDD
:1002F000790C3039F7001708CF39770497002008B8
:10030000073C031D9A290230A200BC30A10022083C
:10031000F9002108F800F90CF80CF90CF80CF90CAC
:1003200078089500F90C790C3039F7001708CF39A7
:10033000770497002008083C031DB5290330A2006C
:100340002030A1002208F9002108F800F90CF80C6F
:10035000F90CF80CF90C78089500F90C790C303987
:10036000F7001708CF39770497002008093C031DD0
:10037000D0290330A2008430A1002208F90021080E
:10038000F800F90CF80CF90CF80CF90C7808950049
:10039000F90C790C3039F7001708CF39770497003A
:1003A00020080A3C031DF129A108031DDA29A2082F
:1003B0000319DE2921080319A203A1032208F90069
:1003C0002108F800F90CF80CF90CF80CF90C780875
:1003D0009500F90C790C3039F7001708CF397704FC
:1003E000970020080B3C031D0A2AA201A101220844
:1003F000F9002108F800F90CF80CF90CF80CF90CCC
:1004000078089500F90C790C3039F7001708CF39C6
:100410007704970020080C3C031D332AA10A031916
:10042000A20A2208023C0318202AFF3A031D1C2AB4
:100430002108E83C0318202A0330A200E830A1007C
:100440002208F9002108F800F90CF80CF90CF80C56
:10045000F90C78089500F90C790C3039F700170879
:0A046000CF3977049700E02863000D
:02400E00103F61
:00000001FF
;PIC16F628A
;CRC=B9B7  CREATED="22-Şub-17 19:39"






İşte bu mükemmel olmuş.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: pwm.c - 23 Şubat 2017, 02:33:40
Alıntı yapılan: ipek - 22 Şubat 2017, 23:01:40
@pwm.c
hocam,klavyenize sağlık ,pek kullanışlı olmuş,ileride eeprom'lusunuda isteriz, # * tuşlarında girilen değeri aklında tutsun,her enerji verdiğimizde ,yeniden ayar yapmayalım... :D

isteklerin benim için emirdir @ipek abi :)
işte (*) tuşu ile eeprom hafızaya kayıt yapanı :

(https://s32.postimg.cc/8o3tb8l0h/keypadpwm.png) (https://postimg.cc/image/8o3tb8l0h/)

ccs c kodları:
#include <16F628A.h>
#FUSES INTRC_IO, PUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT
#use delay(internal=4MHz)
#use FIXED_IO( B_outputs=PIN_B7,PIN_B6,PIN_B5,PIN_B4,PIN_B3,PIN_B2,PIN_B1,PIN_B0 )
#define sat_d   PIN_A0
#define sat_c   PIN_A1
#define sat_b   PIN_A6
#define sat_a   PIN_A7
#define sut_1   PIN_B0
#define sut_2   PIN_B1
#define sut_3   PIN_B2
#include <internal_eeprom.c>
char tus;
int16 pwmduty=0;
char keypad_oku()
{
   output_high(sut_1);
   output_high(sut_2);
   output_high(sut_3);
   tus=0;

   output_low(sut_1);
   if (!input(sat_a))   
      { delay_ms(10); tus=1; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=4; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=7; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0A; }
   output_high(sut_1);

   output_low(sut_2);
   if (!input(sat_a))   
      { delay_ms(10); tus=2; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=5; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=8; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0B; }
   output_high(sut_2);

   output_low(sut_3);
   if (!input(sat_a))   
      { delay_ms(10); tus=3; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=6; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=9; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0C; }
   output_high(sut_3);
     
   return tus;
}
void main() {
   setup_timer_2(T2_DIV_BY_1,255,1);
   setup_ccp1(CCP_PWM);
   set_pwm1_duty((int16)0);
   set_tris_a(0xFF);
   delay_ms(250);
   pwmduty=read_int16_eeprom(0);
   delay_ms(10);
   if(pwmduty>1000){pwmduty=0;write_int16_eeprom(0,pwmduty);delay_ms(10);}
   set_pwm1_duty(pwmduty);

   while(TRUE){
   keypad_oku();
   if(tus==1){pwmduty=100;set_pwm1_duty(pwmduty);}
   if(tus==2){pwmduty=200;set_pwm1_duty(pwmduty);}
   if(tus==3){pwmduty=300;set_pwm1_duty(pwmduty);}
   if(tus==4){pwmduty=400;set_pwm1_duty(pwmduty);}
   if(tus==5){pwmduty=500;set_pwm1_duty(pwmduty);}
   if(tus==6){pwmduty=600;set_pwm1_duty(pwmduty);}
   if(tus==7){pwmduty=700;set_pwm1_duty(pwmduty);}
   if(tus==8){pwmduty=800;set_pwm1_duty(pwmduty);}
   if(tus==9){pwmduty=900;set_pwm1_duty(pwmduty);}
   if(tus==0x0A){write_int16_eeprom(0,pwmduty);while(tus==0x0A){keypad_oku();delay_ms(10);}}
   if(tus==0x0B){pwmduty=0;set_pwm1_duty(pwmduty);}
   if(tus==0x0C){if(++pwmduty>1000){pwmduty=1000;}set_pwm1_duty(pwmduty);}
   }

}


hex dosyası:
:1000000001308A0016290000233084008313000881
:10001000031918280130F800F701F70B0D28F80B29
:100020000C284A30F700F70B13281628800B0A28F3
:100030000800A4012408013C031C3A28A80125302B
:10004000A70024082707F8002808FA000318FA0A6E
:100050007808840083137A18831724082307A900DB
:10006000290883169B009C131C141A088000831215
:10007000A40A1A282508F8002608F9003B29A60139
:100080002608013C031C712826082307A700A901A4
:100090002430A80026082807F8002908FA000318C9
:1000A000FA0A7808840083137A1883170008A800D6
:1000B0000B08F7008B13270883169B008312280870
:1000C00083169A009C131C1555309D00AA309D0084
:1000D0009C149C1869281C11770883128B04A60AAB
:1000E0004028080000308316860083120614831609
:1000F0008600831286148316860083120615A001DB
:100100008316860083120610831685178312851BBB
:100110008E280A30A30004200130A00083160517A2
:100120008312051B98280A30A30004200430A00085
:100130008316851483128518A2280A30A300042090
:100140000730A0008316051483120518AC280A3066
:10015000A30004200A30A00000308316860083121A
:100160000614831686008312861083168517831261
:10017000851BBF280A30A30004200230A00083168C
:1001800005178312051BC9280A30A3000420053077
:10019000A0008316851483128518D3280A30A30083
:1001A00004200830A0008316051483120518DD28EA
:1001B0000A30A30004200B30A00000308316860014
:1001C0008312861483168600831206118316851700
:1001D0008312851BF0280A30A30004200330A000FE
:1001E000831605178312051BFA280A30A300042082
:1001F0000630A000831685148312851804290A305E
:10020000A30004200930A0008316051483120518EA
:100210000E290A30A30004200C30A0000030831601
:100220008600831206152008F800080003081F390D
:10023000830083168E158312A201A10107309F004F
:1002400083130030F80004389200FF3083169200C8
:1002500000308600831286110C3097009501170834
:10026000CF399700FF3083168500FA308312A30040
:100270000420A30119287908A2007808A1000A30F7
:10028000A30004202208023C03185829FF3A031D4A
:100290004D292108E83C03185829A201A101A30116
:1002A0002208A5002108A4003F200A30A300042052
:1002B0002208F9002108F800F90CF80CF90CF80CE8
:1002C000F90C78089500F90C790C3039F70017080B
:1002D000CF39770497007220200B8429A201643063
:1002E000A1002208F9002108F800F90CF80CF90C1B
:1002F000F80CF90C78089500F90C790C3039F700F6
:100300001708CF39770497002008023C031D9E2967
:10031000A201C830A1002208F9002108F800F90C58
:10032000F80CF90CF80CF90C78089500F90C790C1C
:100330003039F7001708CF39770497002008033CBD
:10034000031DB9290130A2002C30A1002208F900B8
:100350002108F800F90CF80CF90CF80CF90C7808E5
:100360009500F90C790C3039F7001708CF3977046C
:1003700097002008043C031DD4290130A2009030CE
:10038000A1002208F9002108F800F90CF80CF90C7A
:10039000F80CF90C78089500F90C790C3039F70055
:1003A0001708CF39770497002008053C031DEF2973
:1003B0000130A200F430A1002208F9002108F80061
:1003C000F90CF80CF90CF80CF90C78089500F90CFC
:1003D000790C3039F7001708CF39770497002008D7
:1003E000063C031D0A2A0230A2005830A100220850
:1003F000F9002108F800F90CF80CF90CF80CF90CCC
:1004000078089500F90C790C3039F7001708CF39C6
:10041000770497002008073C031D252A0230A2001C
:10042000BC30A1002208F9002108F800F90CF80CF2
:10043000F90CF80CF90C78089500F90C790C3039A6
:10044000F7001708CF39770497002008083C031DF0
:10045000402A0330A2002030A1002208F900210820
:10046000F800F90CF80CF90CF80CF90C7808950068
:10047000F90C790C3039F7001708CF397704970059
:100480002008093C031D5B2A0330A2008430A10030
:100490002208F9002108F800F90CF80CF90CF80C06
:1004A000F90C78089500F90C790C3039F700170829
:1004B000CF397704970020080A3C031D6E2AA30158
:1004C0002208A5002108A4003F2020080A3C031DA3
:1004D0006E2A72200A30A3000420652A20080B3CF3
:1004E000031D872AA201A1012208F9002108F800B2
:1004F000F90CF80CF90CF80CF90C78089500F90CCB
:10050000790C3039F7001708CF39770497002008A5
:100510000C3C031DB02AA10A0319A20A2208023CBE
:1005200003189D2AFF3A031D992A2108E83C031865
:100530009D2A0330A200E830A1002208F90021081A
:10054000F800F90CF80CF90CF80CF90C7808950087
:10055000F90C790C3039F7001708CF397704970078
:040560006B296300A0
:02400E00103F61
:00000001FF
;PIC16F628A
;CRC=50DB  CREATED="23-Şub-17 02:18"


Alıntı yapılan: dnacikaya - 22 Şubat 2017, 23:27:58
İşte bu mükemmel olmuş.
teşekkür ederim.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: ipek - 23 Şubat 2017, 03:12:12
tuşumuzu geri isteriz  :D

herhangi bir tuş basıldıktan sonra ,tekrar basılmıyoyorsa durum kaydedilebiliyorsa ,süper olur..
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: pwm.c - 23 Şubat 2017, 05:17:59
Alıntı yapılan: ipek - 23 Şubat 2017, 03:12:12
tuşumuzu geri isteriz  :D

herhangi bir tuş basıldıktan sonra ,tekrar basılmıyoyorsa durum kaydedilebiliyorsa ,süper olur..

tamam abi,
1dk süreli otomatik hafızalı versiyonu:


(https://s8.postimg.cc/r8nxb9hkx/pwmkeypadotm.png) (https://postimg.cc/image/r8nxb9hkx/)

ccs c dosyası:
#include <16F628A.h>
#FUSES INTRC_IO, PUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT
#use delay(internal=4MHz)
#use fast_io(A)
#use fast_io(B)
#define sat_d   PIN_A0
#define sat_c   PIN_A1
#define sat_b   PIN_A6
#define sat_a   PIN_A7
#define sut_1   PIN_B0
#define sut_2   PIN_B1
#define sut_3   PIN_B2
#include <internal_eeprom.c>
char tus=0,bayrak=0;
int16 pwmduty=0,sayac=0;
char keypad_oku()
{
   output_high(sut_1);
   output_high(sut_2);
   output_high(sut_3);
   tus=0;

   output_low(sut_1);
   if (!input(sat_a))   
      { delay_ms(10); tus=1; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=4; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=7; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0A; }
   output_high(sut_1);

   output_low(sut_2);
   if (!input(sat_a))   
      { delay_ms(10); tus=2; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=5; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=8; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0B; }
   output_high(sut_2);

   output_low(sut_3);
   if (!input(sat_a))   
      { delay_ms(10); tus=3; }
   if (!input(sat_b)) 
      { delay_ms(10); tus=6; }
   if (!input(sat_c)) 
      { delay_ms(10); tus=9; }
   if (!input(sat_d))   
      { delay_ms(10); tus=0x0C; }
   output_high(sut_3);
   
   if(tus>0){bayrak=1;sayac=0;}
   return tus;
}
void main() {
   setup_timer_2(T2_DIV_BY_1,255,1);
   setup_ccp1(CCP_PWM);
   set_pwm1_duty((int16)0);
   set_tris_a(0xFF);
   set_tris_b(0x00);
   OUTPUT_B(0x00);
   delay_ms(250);
   pwmduty=read_int16_eeprom(0);
   delay_ms(10);
   if(pwmduty>1000){pwmduty=0;write_int16_eeprom(0,pwmduty);delay_ms(10);}
   set_pwm1_duty(pwmduty);

   while(TRUE){
   keypad_oku();
   if(tus==1){pwmduty=100;set_pwm1_duty(pwmduty);}
   if(tus==2){pwmduty=200;set_pwm1_duty(pwmduty);}
   if(tus==3){pwmduty=300;set_pwm1_duty(pwmduty);}
   if(tus==4){pwmduty=400;set_pwm1_duty(pwmduty);}
   if(tus==5){pwmduty=500;set_pwm1_duty(pwmduty);}
   if(tus==6){pwmduty=600;set_pwm1_duty(pwmduty);}
   if(tus==7){pwmduty=700;set_pwm1_duty(pwmduty);}
   if(tus==8){pwmduty=800;set_pwm1_duty(pwmduty);}
   if(tus==9){pwmduty=900;set_pwm1_duty(pwmduty);}
   if(tus==0x0A){if(pwmduty>0){--pwmduty;}set_pwm1_duty(pwmduty);}
   if(tus==0x0B){pwmduty=0;set_pwm1_duty(pwmduty);}
   if(tus==0x0C){if(++pwmduty>1000){pwmduty=1000;}set_pwm1_duty(pwmduty);}
   if(bayrak==1){delay_ms(1);if(++sayac==45000)
   {write_int16_eeprom(0,pwmduty);sayac=0;bayrak=0;
   output_high(PIN_B7);delay_ms(1000);output_low(PIN_B7);}
      }
   }

}


hex dosyası:
:1000000000308A00DA2800002730840083130008BB
:10001000031918280130F800F701F70B0D28F80B29
:100020000C284A30F700F70B13281628800B0A28F3
:100030000800A7012708013C031C3A28AB0128301F
:10004000AA0027082A07F8002B08FA000318FA0A62
:100050007808840083137A18831727082607AC00D2
:100060002C0883169B009C131C141A088000831212
:10007000A70A1A282808F8002908F9000429A90164
:100080002908013C031C712829082607AA00AC0195
:100090002730AB0029082B07F8002C08FA000318BA
:1000A000FA0A7808840083137A1883170008AB00D3
:1000B0000B08F7008B132A0883169B0083122B086A
:1000C00083169A009C131C1555309D00AA309D0084
:1000D0009C149C1869281C11770883128B04A90AA8
:1000E00040280800061486140615A0010610851B7A
:1000F0007E280A30A70004200130A000051B8528B7
:100100000A30A70004200430A00085188C280A308B
:10011000A70004200730A000051893280A30A70084
:1001200004200A30A00006148610851B9C280A3083
:10013000A70004200230A000051BA3280A30A70056
:1001400004200530A0008518AA280A30A700042042
:100150000830A0000518B1280A30A70004200B3091
:10016000A00086140611851BBA280A30A7000420B7
:100170000330A000051BC1280A30A7000420063068
:10018000A0008518C8280A30A70004200930A00064
:100190000518CF280A30A70004200C30A00006154F
:1001A000A0080319D7280130A100A501A401200847
:1001B000F800352903081F39830083168E15831232
:1001C000A001A101A301A201A501A40107309F0084
:1001D00083130030F80004389200FF308316920039
:1001E000831286110C30970095011708CF399700BC
:1001F000FF30831685000030860083128601FA30B6
:10020000A7000420A60119287908A3007808A200F5
:100210000A30A70004202308023C03182129FF3AD2
:10022000031D16292208E83C03182129A301A20175
:10023000A6012308A8002208A7003F200A30A70033
:1002400004202308F9002208F800F90CF80CF90C36
:10025000F80CF90C78089500F90C790C3039F70096
:100260001708CF39770497007228200B4D29A30176
:100270006430A2002308F9002208F800F90CF80CF9
:10028000F90CF80CF90C78089500F90C790C303958
:10029000F7001708CF39770497002008023C031DA8
:1002A0006729A301C830A2002308F9002208F8003A
:1002B000F90CF80CF90CF80CF90C78089500F90C0D
:1002C000790C3039F7001708CF39770497002008E8
:1002D000033C031D82290130A3002C30A200230817
:1002E000F9002208F800F90CF80CF90CF80CF90CDC
:1002F00078089500F90C790C3039F7001708CF39D8
:10030000770497002008043C031D9D290130A300B9
:100310009030A2002308F9002208F800F90CF80C2C
:10032000F90CF80CF90C78089500F90C790C3039B7
:10033000F7001708CF39770497002008053C031D04
:10034000B8290130A300F430A2002308F9002208E4
:10035000F800F90CF80CF90CF80CF90C7808950079
:10036000F90C790C3039F7001708CF39770497006A
:100370002008063C031DD3290230A3005830A200F8
:100380002308F9002208F800F90CF80CF90CF80C15
:10039000F90C78089500F90C790C3039F70017083A
:1003A000CF39770497002008073C031DEE2902305F
:1003B000A300BC30A2002308F9002208F800F90CC1
:1003C000F80CF90CF80CF90C78089500F90C790C7C
:1003D0003039F7001708CF39770497002008083C18
:1003E000031D092A0330A3002030A2002308F900CE
:1003F0002208F800F90CF80CF90CF80CF90C780844
:100400009500F90C790C3039F7001708CF397704CB
:1004100097002008093C031D242A0330A3008430E0
:10042000A2002308F9002208F800F90CF80CF90CD6
:10043000F80CF90C78089500F90C790C3039F700B4
:100440001708CF397704970020080A3C031D452A76
:10045000A208031D2E2AA3080319322A2208031911
:10046000A303A2032308F9002208F800F90CF80CF2
:10047000F90CF80CF90C78089500F90C790C303966
:10048000F7001708CF397704970020080B3C031DAD
:100490005E2AA301A2012308F9002208F800F90C42
:1004A000F80CF90CF80CF90C78089500F90C790C9B
:1004B0003039F7001708CF397704970020080C3C33
:1004C000031D872AA20A0319A30A2308023C031862
:1004D000742AFF3A031D702A2208E83C0318742A84
:1004E0000330A300E830A2002308F9002208F80036
:1004F000F90CF80CF90CF80CF90C78089500F90CCB
:10050000790C3039F7001708CF3977049700210BA1
:10051000A92A0130A7000420A40A0319A50A240867
:10052000C83C031DA92A2508AF3C031DA92AA60122
:100530002308A8002208A7003F20A501A401A101CB
:1005400086170430A600FA30A7000420A60BA32AC1
:060550008613342963004C
:02400E00103F61
:00000001FF
;PIC16F628A
;CRC=39BA  CREATED="23-Şub-17 04:52"


RB7 pini hafızaya alındığını gösterir.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: JOKERAS - 23 Şubat 2017, 12:41:01
pwm.c usta, valla Şiir gibi kod yazmışsınız,helal olsun:)
Arkadaş, şu kodları neden böyle yazıyorsunuz?Code tag ne oldu,öldümü?
Okunabilirlik yok denecek kadar,millet okuyamasın diyemi böyle yazıyorsunuz?Hayret bişe!

Bunu Port Change İnterruptı (IOC) ile yapın,böyle bir sürü delay, if else kullanmak hoş değil.
Bu şekilde hem hız, hemde alanı yersiniz.Kararlılık bozulur.
İnterrupt ile yaparsanız çok daha güzel olur derim.


Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: ipek - 23 Şubat 2017, 13:23:38
@pwm.c
Hocam tek kelimeyle süper oldu,hemem Led'lerime bağlıyorum ,artık her kısıp açtığımızda seni anımsarız,piyasadan aldığım ,elektrikler gidince tekrar ayar gerektiriyordu,tekrar klavyene sağlık,

bir konuya daha değinmeden edemeyeceğim,hakikaten kod'ların öyle derli toplu nizami,ben C kodlarına bakarken başım döner,hiç sevemedim,oysa Mecidiyeköyde kursunada gitmiştim...
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: JOKERAS - 23 Şubat 2017, 13:27:44
Alıntı yapılan: ipek - 23 Şubat 2017, 13:23:38
@pwm.c
Hocam tek kelimeyle süper oldu,hemem Led'lerime bağlıyorum ,artık her kısıp açtığımızda seni anımsarız,piyasadan aldığım ,elektrikler gidince tekrar ayar gerektiriyordu,tekrar klavyene sağlık,

bir konuya daha değinmeden edemeyeceğim,hakikaten kod'ların öyle derli toplu nizami,ben C kodlarına bakarken başım döner,hiç sevemedim,oysa Mecidiyeköyde kursunada gitmiştim...
İpek kardeş sen şimdi bana lafmı soktun?
Onu bileyim ona göre mesaj yazacağım.
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: ipek - 23 Şubat 2017, 13:58:49
Estağpiti,piti :D  ne haddime...
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: JOKERAS - 23 Şubat 2017, 14:13:16
Alıntı yapılan: ipek - 23 Şubat 2017, 13:58:49
Estağpiti,piti :D  ne haddime...


Bak yukarıda pwm.c ustaya yazdığımı iyi okuyun bence.
Ne demişim?
Demişimki kodları çok okunaksız yazmışsın,bir şey anlaşılmıyor.
Kime sorarsanız sorun bir kişi bile,siz hariç.Evet bu çok okunaklı bir kod olmuş demeyecektir emin olun.

Kodlarımdan dem vurmuşsunuz.Kod kişiye özeldir,kişi kendi senaryosunu yazar kendi algoritmasını tasarlar koda döker.
Burada kod vereceğim yada vereceğiz diyen oldumu?
Kod yazan birine hazır kod vermek kadar kötü bir şey varmı acaba?

Evet CCS'yi hiç sevemedim,bu benim görüşüm siz sevdiyseniz ne güzel  ne yapayım yani banane!İster seeev ister sevme bana ne?
Konunun Mecidiyeköyle ne alakası var onu anlamadım.
Evet Mecidiyeköyde Kursa gittim,iyiki gitmişim çok memnunum herkese ısrarla tavsiye ediyorum.
Hatta Sizde gidin gitttikten sonra emin olun burada yazdığınız bir çok mesajı sileceğinizden eminim.

Bu ne oluyor ?
"Estağpiti,piti :D  ne haddime..." 
Estağfirullah demek istediniz herhalde.Haa anladım Dalga geçiyorsun.
Geçebilirsin sorun yok kendini eğlendir.Neşeli ol genç kal, üzme kendini:)



Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: ipek - 23 Şubat 2017, 15:14:13
Sayın jokeras
sizin bir sistem reset atmaya ihtiyacınız var ,kurulduğundan beri buradayım sizinle ilk defa muhatap oluyorum,isminiz bile geçmedi bune hüsnü kuruntu,anlayamadım bence muhabbeti burada sonlardırmada yarar var....geriye dönük mesajlarımı bir kez daha okuyun benide bunalmış hoca ile karıştırmayın,lastik gibi uzatmam...
Başlık: Ynt: 4x3 Tuş Takımı ile PWM yardımı
Gönderen: mehmet - 23 Şubat 2017, 15:59:30
Kodlar çalıştığına göre uzatmaya gerek yok...
Kolaylıklar.