Új hozzászólás Aktív témák
-
bkercso
nagyúr
Sok sikert!
Én csak Pascalban meg Delphiben írtam eddig pár tízezer sort (fraktálgenerátor, illetve kaotikus fizikai rendszerek szimulációja). Meg olvastam pár C++ kódot.
-
#90088192
törölt tag
Hello
Koszi az infót, lenne egy kérdésem is mert ezzel ki tudom kerülni ezt az egész marhaságot amit csinálok éppen.
Van egy port definiálás
#include <inttypes.h>
#include <p32xxxx.h>
#ifndef KS0108_H
#define KS0108_H
// Ports
#define LCD_CMD_PORT PORTD // Command Output Register
#define LCD_CMD_DIR DDRD // Data Direction Register for Command Port
#define LCD_DATA_IN PINE // Data Input Register
#define LCD_DATA_OUT PORTE // Data Output Register
#define LCD_DATA_DIR DDRA // Data Direction Register for DataAmi érdekes
LCD_CMD_PORT PORTD engem az érdekel, meg-e lehet oldani, hogy egyenkénti biteket definiáljak mint egy port.Egy példa mert maga LCD_CMD_PORT valójában ezeket a funkciókat tartalmazza:
#define KS0108_CS1 LATGbits.LATG6
#define KS0108_CS2 LATDbits.LATD8
#define KS0108_RS LATGbits.LATG9
#define KS0108_RW LATDbits.LATD7
#define KS0108_EN LATDbits.LATD11Vagyis a portra adott utasítások ezeket billentik át, csak nálam nem egy PORT-ra van bekötve hanem szétszórva ahogy latod
-
Domonkos
addikt
Az, hogy ennek a fugvenynek nincs igazi mellekhatasa. Ebben a formaban csak nagyon keves feltetelezheto a forditott gepi kodrol. Jobb/ujabb forditok szerintem csak egy sima
ret
-re fogjak az egeszet cserelni. Ami egyebkent jo es amugy optimalis megoldas is, dedelay
-kent nem sok ertelme lenne. -
#90088192
törölt tag
Egyszerű, a próba panelem ingyen volt, és van egy komplett berendezésem amivel tesztelni tudom, kisebb módosítások csak a a végrehajtó oldalon szükségesek. Minden dokumentálva van mert elhoztam a cégtől a komplett PCB alkönyvtárat.
Egy akkumulátor tolton dolgozok ami eredetileg egy hibrid analog/digitalis szabályzó körrel volt ellátva, én egy teljesen digitális verziót akarok csinálni
-
#90088192
törölt tag
Mi a baj vele? Utoljára kb 14 éves lehettem amikor Pascalban ökörködtem egy kicsit, ez most éppen a tanulási szakasz
Csaltam egy picit, találtam egy kódot ami legalább ki tud írni valamit, de aki írta bevallotta, ugyan úgy nem tud programozni mint EN
Ebből reszelem most amit éppen láttok. A nagyja az enyém mar, de ezen átsiklottam
-
Attix70
aktív tag
Miért PIC és miért nem Atmega (Arduino) ?
Arduino (ESP, STM, Atmega...). -
#90088192
törölt tag
Es a hiányzó "ks0108.h" Header
// KS0108 LCD Driver Config Header
#pragma config POSCMOD = XT, FNOSC = PRIPLL
#pragma config FPLLMUL = MUL_20
#pragma config FPLLIDIV = DIV_2
#pragma config FPLLODIV = DIV_1, FWDTEN = OFF
#pragma config FPBDIV = DIV_8
#pragma config OSCIOFNC = OFF
#include <stdio.h>
#include <string.h>
#include <math.h>
//#define __PIC32MX__
#if defined(__PIC24F__)
#include <p24fxxxx.h> ;
#elif defined(__PIC24H__)
#include <p24hxxxx.h> ;
#elif defined(__dsPIC30F__)
#include <p30fxxxx.h>;
#elif defined(__dsPIC33F__)
#include <p33fxxxx.h>;
#elif defined(__PIC32MX__)
#include <p32xxxx.h>
#else
#error Processor type not defined!!
#endif
//Physical port assignment
#define KS0108_Dir TRISE
#define DATA_OUT LATE
#define DATA_IN PORTE
//Physical pin assignment
#define KS0108_CS1 LATGbits.LATG6
#define KS0108_CS2 LATDbits.LATD8
#define KS0108_RS LATGbits.LATG9
#define KS0108_RW LATDbits.LATD7
#define KS0108_EN LATDbits.LATD11
#define KS0108_CL1 LATBbits.LATB13
#define KS0108_CL2 LATBbits.LATB14
#define KS0108_CL3 LATBbits.LATB15
// direction flags for the pins hardwware layer
#define KS0108_CL1_Direction TRISBbits.TRISB13
#define KS0108_CL2_Direction TRISBbits.TRISB14
#define KS0108_CL3_Direction TRISBbits.TRISB15
#define KS0108_CS1_Direction TRISGbits.TRISG6
#define KS0108_CS2_Direction TRISDbits.TRISD8
#define KS0108_RS_Direction TRISGbits.TRISG9
#define KS0108_RW_Direction TRISDbits.TRISD7
#define KS0108_EN_Direction TRISDbits.TRISD11
void InitalizePorts()
{DATA_OUT=0;
DATA_IN=0;
KS0108_Dir=0;
KS0108_CS1=1;
KS0108_CS2=1;
KS0108_RS=1;
KS0108_RW=0;
KS0108_EN=1;
/* Command port direction settings */
KS0108_CS1_Direction =0 ;
KS0108_CS2_Direction =0 ;
KS0108_RS_Direction =0 ;
KS0108_RW_Direction =0 ;
KS0108_EN_Direction =0 ;
KS0108_CL1_Direction =0 ;
KS0108_CL2_Direction =0 ;
KS0108_CL3_Direction =0 ;
} -
#90088192
törölt tag
Ha mar egyszer érdeklődik az úr
// KS0108 Graphic LCD "C" Driver V0.0
// Laz
#include "ks0108.h"
#include "font5x8.h"
void delay(int j)
{
unsigned int i;
for(i=0; i<j; i++);
}
void strobe_E(void) //Turn screen On and Off
{
KS0108_EN = 1;
delay(20);
KS0108_EN = 0;
delay(20);
}
void lcd_sel(int s) //Screen Side Select
{ if(s==0)
{
KS0108_CS1 = 1; // Left 64 Vertical bit selected
KS0108_CS2 = 0;
} else if(s==1){
KS0108_CS1 = 0;
KS0108_CS2 = 1; // Right 64 Vertical bit selected
}else{
KS0108_CS1 = 1; // Left 64 Vertical bit selected
KS0108_CS2 = 1; // Right 64 Vertical bit selected
}
}
void line_select(int s)
{
// X Page : Select Horizontal group of 8bits
KS0108_RS = 0;
DATA_OUT = s;
strobe_E();
}
void set_y(int y)
{
//Y address
KS0108_RS = 0; //Instruction mode
DATA_OUT = (0b01000000+y);
strobe_E();
}
void start_line(int y)
{
KS0108_RS = 0; //Instruction mode
DATA_OUT = (0b11000000+y);
strobe_E();
}
void clr_scr (int t)
{
int x; int y;
start_line(0b00000000); //Horizontal offset address
for(y=0b10111000;y<0b11000000;y++)
{line_select(y);
delay(20);
for(x=0; x<64; x++)
{
//set_y(x);
KS0108_RS = 1;
DATA_OUT = t;
strobe_E();
};
};
};
void main(void)
{
unsigned int x;
InitalizePorts(); //Set Ports to default
//Wait for Vcc to settle
delay(20);
//Instruction Mode
KS0108_RS = 0;
// Turn on display
KS0108_RS = 0;
DATA_OUT = 0b00111111;
strobe_E();
lcd_sel(3); //Select both sides of the display
delay(100),
set_y(0); ///Vertical offset address
clr_scr(0x00); //Wipes the screen with the given data
//*************************************************************************
// Write Test
//*************************************************************************
lcd_sel(3);
start_line(0b00111000); //Horizontal Offset address
int u;
for(u=0b10111000;u<=0b10111111;u++) //Loop for horizontal line selection
{
line_select(u); //Horizontal line selection
set_y(0b00000001);
for(x=6; x<66; x++) //Data Readout from array
{
KS0108_RS = 1; //Data out mode
DATA_OUT = font5x8[x]; //Put data on the port
strobe_E();
};
};
while(1);
} -
Azért ha lehet, akkor próbáld meg mégis a típusos adatokat – mondjuk a részletekről nem sokat mondtál, így nehéz tanácsot adni.
... és a bináris és a hexa az nem adattípus, hanem csak az információ egy megjelenítése.
-
KISDUCK
addikt
"Mindennek a tetejében elkaptam valami nyavalyát, nem sokat aludtam, köhögök mint ahogy kell.
Negyedik Hiba"
Nem ám elkaptad te is a korona vírust!Jobbulást amúgy!
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Kiemelkedően csendes ASUS VGA jött a Noctua közreműködésével
- PlayStation 5
- Amlogic S905, S912 processzoros készülékek
- Samsung Galaxy Watch7 - kötelező kör
- Yettel topik
- Szeged és környéke adok-veszek-beszélgetek
- Milyen légkondit a lakásba?
- Először égett le egy újságnál a GeForce RTX 5090
- További aktív témák...
- Telefon szerviz helyben - Gyors javítás, akár 30 perc alatt!
- Update 08.12. - Bomba árak 2025-ben is! Üzleti - Consumer laptopok DELL FUJITSU HP LENOVO
- Medion Erazer Beast X40-hez vízhűtés (MD 60961)
- Telefon felvásárlás!! Huawei P20 Lite/Huawei P20/Huawei P30 Lite/Huawei P30/Huawei P30 Pro
- Gamer Notebook! Acer Nitro 5! Csere-Beszámítás! I5 11400H / RTX 3050Ti / 16GB DDR4 / 500GB SSD!
Állásajánlatok
Cég: FOTC
Város: Budapest