Ú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
- Eszeveszett AI adatközpont bővítés folyik
- Xiaomi 15 Ultra - kamera, telefon
- Azonnali játékos kérdések órája
- Mibe tegyem a megtakarításaimat?
- Mégis marad a Windows 10 ingyenes frissítése
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Melyik tápegységet vegyem?
- Autós topik
- PlayStation 5
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- A/C klima, with all pipes and remote
- iPhone 16 PRO 256GB fekete titán gyönyörű ISTYLE számla! Akku:99%! November 14-ig Apple garancia!
- Újszerű Lenovo Thinkpad T16 gen2 (13.gen Core I7 32Gb DDR5 1 Tb SSD) MAGYAR laptop 2 év garancia!!
- Gamer PC - i5 12400f, RTX 3080 és 32gb RAM + GARANCIA
- Új Dell 5330 Latitude 13.3 FHD IPS i3-1215U 4.4Ghz 6mag 16GB 256GB Intel UHD Win11 Pro LTE Garancia
- Akciós Windows 10 pro + Office 2019 professional plus csomag AZONNALI SZÁLLÍTÁS
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB DDR5 RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- Samsung Galaxy A9 2018 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 16 128 GB Black 1 év Garancia Beszámítás Házhozszállítás
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest