Перейти к содержанию

Arthur

Members
  • Постов

    210
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Arthur

  1. Только чтение, желательно монохромных BMP расширением 128х64, мк будет скорее всего Atmega128 так как на нем я остановился пораскинув мозгами (о количестве портов), запись на флешку не нужна, но думаю на сколько быстро будет чтение битмапа из флешки?

  2. Я тут подумал, что без массивов мне не обойтись, и логично подумать забивать массивами внутреннюю память микроконтроллера не рентабельно, но что если взять microCD и хранить всё там? Но что для этого надо?

  3. Не лень, специально так написал, посмотреть как будет вести себя LCD дисплей.

    вот я посмотрел на видео...

    ну блин не тормозит ничего. Как они это делают(

  4. да я то не спорю) мне еще нужно к этим формулам определитель сделать) что бы определял на какую формулу направить расчет), только я вот просто в протеусе такую глупость сделал

    #define F_CPU 1000000UL
    #include <avr/io.h>
    #include <avr/iom8.h>
    #include <stdlib.h>
    #define SetBit(x,y) (x|=y)
    #define ClrBit(x,y) (x&=~y)
    #define TestBit(x,y) (x&y)
    #define LCD_RST 0b00000001
    #define LCD_E 0b00000010
    #define LCD_RW 0b00000100
    #define LCD_RS 0b00001000
    #define LCD_CS2 0b00010000
    #define LCD_CS1 0b00100000
    #define LCD_DB PORTD
    #define LCD_COM PORTC
    #include <util/delay.h>
    #include "X:\прошивка\Prosha\Prosha\ks0108.h"
    int main( void )
    //void main()
    {
    DDRC=0xFF;
    DDRD=0xFF; 
    init_lcd();
    _delay_ms(10);
    clear();
    while (1)
    {
    _delay_ms(1);
    WriteXY(0,0,LCD_CS1);
    _delay_ms(1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    
    WriteXY(0,0,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteXY(0,1,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    
    WriteXY(0,1,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteXY(0,2,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    WriteData(0b11111111,LCD_CS1);
    
    WriteXY(0,2,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteData(0b11111111,LCD_CS2);
    WriteXY(0,0,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    
    WriteXY(0,0,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    
    WriteXY(0,1,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    WriteData(0b00000000,LCD_CS1);
    
    WriteXY(0,1,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    WriteData(0b00000000,LCD_CS2);
    }
    }
    

    сделал что бы посмотреть как по скорости дисплей работает, либо протеус притормаживает либо очень медленно работает lcd дисплей. Вот бы в живую проверить

  5. о какой погрешности может идти речь на поле 128 на 64 пикселей на 0,01?))) я одного только не пойму) у меня в ступор ввел этот алгоритм Брезенхема, Линию вправо и вниз понятно. Линию вправо и вверх тоже, Вверх влево и Вверх вправо тоже.. А вот как сделать в обратное направление) т.е. влево и вниз влево и вверх. Вниз и влево вниз и вправо, так и не понял)

  6. а я всё думаю) что я мужу) ведь речь идет не о каких либо миллионах пикселей а всего навсего о 128 на 64 экранчике)))) там погрешность не будет играть значимой роли мне кажется) поэтому можно формулу Брезенхема закопать)))

  7. я так понял быстродействие вычислений будет зависить от быстродействия мозгов микроконтроллера, а я так понял это у Atmega8 (16MHz), а если взять сразу микроконтроллер пошустрее. Есть ли такие среди AVR или PIC???

  8. Короче посетила меня идея (с таблеткой эспумезана), имеется дисплей MT-12864A-2FLA по сути он ничем наверное не отличается от LGM12641BS1R у них такие же контроллеры стоят. Рисовать растр, согласитесь это занимает очень много места в памяти микроконтроллера. И задумался я написать драйвер для него (аля векторная графика), задаю точку 1 и точку 2 а он чертит сам мне линию. Алгоритмы уже есть, написаны за долго до меня, за основу взял алгоритм Брезенхема. Написать программу это пол беды, столкнулся я с такой проблемой, ведь дисплей по сути разбит на два сектора (кристалла) по 64 столбца. и если допусти мне надо поставить одну точку в одном кристалле а другую в другом, программа то расчитает мне точки линии, но как мне сделать перенос с одного кристалла на другой?

    Дальше еще думаю, как быстро он будет делать расчёты. всех точек. и на сколько быстро он прочертит одну линию.

    Конечно я лезу в дебри если честно и наверника уже есть такие дисплеи со встроенным контроллером, которому эту программу не надо писать, и дисплею нужно лишь подать координаты двух точек (графический контроллер) но я пока такие дисплеи не нашёл, может не там искал.

  9. Кстати вклинюсь в тему, что бы не создавать новую. Нужен LCD дисплей жк, пиксельный, но с графическим процессором, что бы не тратить мне в программе место для написания алгоритмов брезенхема, и других алгоритмов для простых геометрических фигур. Дисплей нужен для подключению к микроконтроллеру Atmega8 или 16 пока не определился, который будет опрашивать датчики разные (температура, часы, и т.п. и выводить на экран), но часы я не хочу делать с числами я хочу делать их графическими. Есть датчики которые опрашивают 10-15 раз засекунду, например датчики акселерометра и компаса, и следовательно, частота кадров дисплея, т.е. скорость графического процессора дисплея, должна соответствовать. Дисплей в районе 128х64, больше немного приветсвуется, меньше нет. Именно черно белый с подсветкой, что бы можно было днем подсветку вырубить. Кто что посоветует?

  10. здрасти всем.. как осуществить такую задумку??? есть чистый синус, чище небывает. и ниже постоянная составляющая. как замодулировать синусойду? по сути это АМ.Максимальное изменение постоянной составляющей 1мс, что и показано тут. Есть идеи??? QnOyYG5uP70.jpg

  11. ну например? мне нужно в открытом состоянии что бы было 0 сопротивление в закрытом мегаомы, если лучше то гигаомы... но как... как мне сделать управление ключом это логическая 1 от микроконтроллера... важна еще очень скорость открытия и закрытия...

  12. Выбрал полевой транзистор в роли ключа, НО, какой бы подобрать, нужно что бы переходил в открытое положение за считанные наносекунды, если есть такие, потом, что бы в открытом положении обязательно было очень низкое сопротивление. равно нулю как бы, я знаю есть такие у которых равно 0,01 Ом, сойдет, но это в википедии написано было просто, и что бы в закрытом было как можно больше мегаом. Вообще есть ли такие транзисторы?? причем как с N каналом так и с P каналом??? или таких в природе не существует?

  13. Да смысла в этом нет, тебе и 8 разрядов хватит за глаза.

    меня настараживает тот факт, что такие переменники не убавляют в ноль, т.е у них сопротивление 50 Ом но остаётся.

  14. Да любой. Хоть 1N5819.

    Ну так 10 бит - это же 1024 шага. Допустим, у тебя диапазон регулировки 100дБ (что уже сильно преувеличено), ты получишь точность 0.1дБ на шаг - это более чем "плавно".

    допустим.

    а есть ли нелинейные искажения в таких потенциометрах?

  15. Может стоит попробовать диод Шоттки?

    был бы он у меня - какой посоветуете? я попробую.

    Если уже на то пошло, то нужно огласить - зачем оно вам нужно, а не разводить демагогию на 100500 страниц.

    http://www.gaw.ru/ht...im/dp/start.htm выбирайте и смотрите что нужно

    у цифровых нет к сожалению линейного смещения там смещается шагово. (ступенчато), были бы 32 битные, былоб конечно идеально, но увы максимум вижу 10 битные

×
×
  • Создать...