Új hozzászólás Aktív témák
-
moseras
tag
-
moseras
tag
válasz
buherton #4874 üzenetére
Üdv!
MinGW/msys/Windows alatt működik. Az nem volt benne a kérdésben, hogy milyen rendszer alatt akarja futtatni, lehet mikrokontroller, Windows, Linux, Mac, BSD, akármi más. Egyébként is csak a a kimenet demonstrálása miatt írtam le, hogy mit ír ki, nem a fordítás menetét akartam megmutatni. Szerintem Ő van annyira képben, hogy le tudja fordítani az adott rendszerére a programot. Ha nem, akkor majd szól.
Imi.
-
moseras
tag
Üdv!
uint8_t zreg[8] = {0,0,0,0,0,0,0,0};
#define C zreg[0]
#define B zreg[1]
#define E zreg[2]
#define D zreg[3]
#define BC (uint16_t*)&zreg[0]
#define DE (uint16_t*)&zreg[2]
int main(int argc, char**argv)
{
int i;
*BC += 852;
*DE += 4500;
printf("BC: %d, DE: %d\n", *BC, *DE);
printf("zreg: ");
for (i = 0; i < 8; ++i) {
printf("%d ", (int)zreg[i]);
}
printf("\n");return 0;
}Eredmény:
$ gcc -o 1.exe 1.c; 1.exe
BC: 852, DE: 4500
zreg: 84 3 148 17 0 0 0 0Imi.
[ Szerkesztve ]
-
moseras
tag
válasz
don_peter #4863 üzenetére
Üdv!
Szerintem RS232 != SPI. Van olyan, hogy HW-es RS232, HW-es SPI, HW-es I2C, HW-es CAN, stb., de ezek egymástól függetlenek. Típustól függően vagy ez, vagy az, vagy akár mind a 4 is lehet egy kontrollerben. Sőt, akár több RS232 és/vagy SPI is lehet egy-egy kontrollerben (persze itt a nagyobbakra gondolok). Szóval szerintem az RS232 teljesen független az SPI-től. Pl. a te kontrolleredben nincs RS232, de van benne 1 SPI és 1 I2C. De pl. a PIC16F1704-ben már van 1 db RS232.
Lassan offtopic leszek...
Imi.
-
moseras
tag
válasz
don_peter #4855 üzenetére
Üdv!
Ha
static const unsigned char ABC[40][7]
írsz, akkor (legalábbis régebben így volt) a FLASH-be, vagyis a program memóriába teszi a tömböt. Tehát fontos a const módosító. Mivel ezt te csak olvasod, ezért neked ez így megfelelő. Bár nem tudom, hogy milyen C fordítót használsz, de a Microchip PIC18-as fordítója régebben const módosító esetén a FLASH-be tette.
Imi.
[ Szerkesztve ]
-
moseras
tag
válasz
don_peter #4852 üzenetére
Üdv!
Talán egyszerűbb:
void karakter(unsigned char karakter, unsigned char irany){
unsigned char i;
unsigned char normal = (irany == '0');
unsigned char mask_end = normal ? 0 : 0x20;
unsigned char mask;
for(i=0; i<7; i++){
mask = normal ? 0x10 : 0x01;
while (mask != mask_end) {
if (ABC[karakter][i] & mask){
printf("o");
}else{
printf(".");
}
if(normal) {
mask >>= 1;
} else {
mask <<= 1;
}
}
printf("\n");
}
}Imi.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen okostelefont vegyek? OFF topik
- Motorola Edge 40 - jó bőr
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Nem indul és mi a baja a gépemnek topik
- Azonnali VGA-s kérdések órája
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Lakáshitel, lakásvásárlás
- Gaming notebook topik
- További aktív témák...
- Új Lenovo IdeaPad 5 x360 Érintős Laptop Tablet 16" -40% i7 150U 10mag 16/512 2K OLED
- HP OMEN Gaming 16-wd0000nq - ÚJ 16" GAMER notebook - i5-13420H, 16GB, 512SSD, RTX 4050 (6GB)
- HP PROBOOK 460 G11 (9Y7S7ET) - ÚJ - 16" üzleti notebook - U5 125U, 16GB, W11pro
- Cisco ISR 4331/K9
- Remek áron dobozos új Lenovo Ideapad Gaming 3 Ryzen 5 5500H 16GB 512 SSD Nvidia RTX 2050garancia