Ahmet
S38>S85
- Katılım
- 31 Mayıs 2021
- Mesajlar
- 6,081
Kod doğru değildir.Kod doğru mu bilmiyorum ama mantığını anlamışsın.
Ben tek seferde doğru yazamam yanlışı yaşayıp doğrusunu buluyorum hep ilk yazdığım programda'da durum böyleydi hala böyle
Kod doğru değildir.Kod doğru mu bilmiyorum ama mantığını anlamışsın.
Picoya geçeyim mi abi?Bir de şunu belirtmekte fayda var. Böyle bol taklalı kod yazmamızın sebebi işlemcinin kısıtlı olmasından. Yoksa ben mesela ARM için veya başka hızlı bir işlemci için kesinlikle böyle kod yazmam. Maksimum seviyede ANLAŞILIR kod yazmaya çalışırım.
unsigned char bcdm[] = {
bcdm[0] = 0,
bcdm[1] = 0,
bcdm[2] = 0,
bcdm[3] = 0,
bcdm[4] = 0,
bcdm[5] = 0,
bcdm[6] = 0,
bcdm[7] = 0,
};
void bcd_m()
{
bcdm[0]++;//milisaniye giriş
//------------MILISANIYE-----------
if (bcdm[0] == 1) {//BIRLER
bcdm[1]++;
bcdm[0] = 0;
}
if (bcdm[1] == 10) {//ONLAR
bcdm[2]++;
bcdm[1] = 0;
}
//------------MILISANIYE-----------
//------------SANIYE---------------
if (bcdm[2] == 10) { //BIRLER
bcdm[3]++;
//Serial.println(bcdm[3]);
bcdm[2] = 0;
}
if (bcdm[3] == 60) { //ONLAR
// bcdm[4]++;
bcdm[3] = 0;
}
//------------SANIYE---------------
}
ISR(TIMER1_COMPA_vect) {
// salise[1]++;
bcd_m();
}
bcd[0]++;//her timer kesmesinde +1
//------------MILISANIYE----------
if(bcd[0] == 9){
bcd[1]++;
bcd[0] = 0;
}
if(bcd[1] == 9){
bcd[2]++;
bcd[1] = 0;
}
//------------MILISANIYE----------
//------------SANIYE--------------
if(bcd[2] == 9){
bcd[3]++;
bcd[2] = 0;
}
if(bcd[3] == 5){
bcd[4]++;
bcd[3] = 0;
}
//------------SANIYE--------------
unsigned char bcd[] = {
bcd[0] = 0,
bcd[1] = 0,
bcd[2] = 0,
bcd[3] = 0,
bcd[4] = 0,
bcd[5] = 0,
bcd[6] = 0,
bcd[7] = 0
};
void bcd_inc()
{
bcd[0]++;//her timer kesmesinde +1
//------------MILISANIYE----------
if(bcd[0] == 9){
bcd[1]++;
bcd[0] = 0;
}
if(bcd[1] == 9){
bcd[2]++;
bcd[1] = 0;
}
//------------MILISANIYE----------
//------------SANIYE--------------
if(bcd[2] == 9){
bcd[3]++;
bcd[2] = 0;
}
if(bcd[3] == 5){
bcd[4]++;
bcd[3] = 0;
}
//------------SANIYE--------------
Serial.print(bcd[3]);//s 1
Serial.print("-");//
Serial.print(bcd[2]);//s 10
Serial.print("==");
Serial.print(bcd[1]);//ms 10
Serial.print("-");//ms 1
Serial.print(bcd[0]);//ms 1
Serial.println(" ");
//------------DAKIKA--------------
//------------DAKIKA--------------
}
ISR(TIMER1_COMPA_vect) {
bcd_inc();
}