P10 Panel Sürme Algoritması

Başlatan gold3nnn, 21 Ocak 2024, 14:07:26

gold3nnn

Merhabalar;
Tek P10 paneli Stm32f103 ile kontrol etmeye çalışıyorum. P10 Panel üzerinde istediğim yazıları ya da rakamları gösterebiliyorum ama bu algoritma çok uzun oluyor. Kaydırma işlemini hiç yapamadım, bitler birbirine giriyor.
Bu konuda @Mucit23  yazmış olduğu kütüphaneyi de inceledim defalarca ama oturmayan şeyler var kafamda.

uint8_t displayArea[4][16] şeklinde bir değişkenim var. bunun içerisine,
uint8_t ikiYaz[24] = {0x00,0x0F,0x19,0x31,0x31,0x03,0x06,0x0C,0x18,0x3F,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x00,0x00};   

ikiYaz değişkenini gönderip, ekranda görmek istiyorum.

Şurada problemim var. bu iki rakamı, 2.satırdan başlayarak yazılacak. Bu bitleri nasıl displayArea değişkenine atmalıyım.

NOT: Transfer tarafında SPI kullanıyorum ve veri transfer tarafında bir problem yok. her 1 ms de bir int. ile veri gönderiliyor.

switch (int_syc)
   {
      case 0:
      HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin,GPIO_PIN_RESET);writeData(int_syc);
      HAL_GPIO_WritePin(A_Pin_GPIO_Port,A_Pin_Pin,GPIO_PIN_RESET);
      HAL_GPIO_WritePin(B_Pin_GPIO_Port,B_Pin_Pin,GPIO_PIN_RESET);HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin,GPIO_PIN_SET);
      break;
      case 1:
      HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin,GPIO_PIN_RESET);writeData(int_syc);
      HAL_GPIO_WritePin(A_Pin_GPIO_Port,A_Pin_Pin,GPIO_PIN_SET);
      HAL_GPIO_WritePin(B_Pin_GPIO_Port,B_Pin_Pin,GPIO_PIN_RESET);HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin,GPIO_PIN_SET);
      break;
      case 2:
      HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin,GPIO_PIN_RESET);writeData(int_syc);
      HAL_GPIO_WritePin(A_Pin_GPIO_Port,A_Pin_Pin,GPIO_PIN_RESET);
         HAL_GPIO_WritePin(B_Pin_GPIO_Port,B_Pin_Pin,GPIO_PIN_SET);HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin,GPIO_PIN_SET);
      break;
      case 3:
      HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin,GPIO_PIN_RESET);writeData(int_syc);
      HAL_GPIO_WritePin(A_Pin_GPIO_Port,A_Pin_Pin,GPIO_PIN_SET);
         HAL_GPIO_WritePin(B_Pin_GPIO_Port,B_Pin_Pin,GPIO_PIN_SET);HAL_GPIO_WritePin(OE_GPIO_Port,OE_Pin,GPIO_PIN_SET);
      break;
   }
   int_syc++;if(int_syc>3){int_syc=0;}

Teşekkürler...

Mucit23

Alıntı yapılan: gold3nnn - 21 Ocak 2024, 14:07:26Şurada problemim var. bu iki rakamı, 2.satırdan başlayarak yazılacak. Bu bitleri nasıl displayArea değişkenine atmalıyım.


Bu işi PutPixel fonksiyonu yapıyor. İlk önce Ekrandaki istediğiniz herhangi bir pixeli yakıp söndürme işini halletmelisiniz. Ekranda istediğiniz bir pixeli yakıp söndürebiliyor musunuz?