Код: Выделить всё
void lcd_string(unsigned char command, char *string)
{
...
lcd_data(*string);
string++;
...
}
int main(void)
{
...
lcd_string(0xC4, " : : ");
...
}Код: Выделить всё
void lcd_string(unsigned char command, char *string)
{
...
lcd_data(*string);
string++;
...
}
int main(void)
{
...
lcd_string(0xC4, " : : ");
...
}Код: Выделить всё
char a[9]; // создали массив из 9 байтов
char *x; // создали переменную-указатель на char
char *y; // ещё одну такую же
x = &a[0]; // в x передали адрес нулевого элемента массива
y = a; // фактически сделали то же самое, теперь x и y равны, т.к. указывают на одну и ту же область памятиКод: Выделить всё
lcd_string(0xC4, " : : ");
// Это можно было бы записать и так:
char *a = " : : ";
lcd_string(0xC4, a);
// или так:
char a[] = {' ', ' ', ':', ' ', ' ', ':', ' ', ' ', 0}
lcd_string(0xC4, a);вы только что сделали открытие! а ведь если бы прочли любую книгу по основам языка Си, открытие бы не состоялось... может, все-таки рискнете сначала почитать о языке, на котором собираетесь программировать?mastech писал(а):Получается переменные unsigned char command, char *string обьявляются в функции void lcd_string и работают только в пределах этой функции?
можно, например, так:mastech писал(а):можно ли их объявить глобально чтобы они работали на протяжении всего кода и как бы выглядела тогда функция void lcd_string?
Код: Выделить всё
static unsigned char command;
void lcd_string(char *string){
lcd_com(0x0C);
lcd_com(command);
while(*string != '\0'){
lcd_data(*string);
string++;
}
}крайне неверное решение, что касается обучения.ARV писал(а):извините, но я на самом деле порой занимаюсь высмеиванием, если считаю, что это заслуженно.
а давайте каждый будет делать то, что считает нужным? я не заставляю вас даже читать то, что я пишу. неприятно вам - возможно, другим будет приятно. думаю, если бы вы в школе не взялись за учебники, никакая хорошая училка не сделала бы из вас отличника или хорошиста. ведь наверняка не каждый двоешник у вас стал математиком? все от вас зависит: будете искать повод обидеться - будете обиженным, будете искать полезную информацию - найдете ее.mastech писал(а):ARV ваши ответы крайне неприятны, может пусть другой ответит. Здесь же не форум профессионалов, а любителей которые сами учатся в свободное время, и сами составляют учебную программу не всегда правильную.
Вы же ниже приводите код, из которого явно видно, что там хранится некая команда, которую дальше передают в функцию lcd_com(). А что за команда - это уже завист от того, откуда вызывается lcd_string().mastech писал(а):а что хранится в переменной unsigned char command какова роль этой переменной?
а я не зря имею звание "Ум, честь и совесть"WiseLord писал(а):как заметил ум. ARV
кто бы спорил. но разве здесь кто-то нанялся кому-то в учителя?!FreshMan писал(а):учитель и его метод подачи материала играет ОГРОМНОЕ значение для учащегося !!!
упаси Боже !ARV писал(а):кто бы спорил. но разве здесь кто-то нанялся кому-то в учителя?!FreshMan писал(а):учитель и его метод подачи материала играет ОГРОМНОЕ значение для учащегося !!!
ну, в данном-то случае опечатки же нетWiseLord писал(а):Что-то я в последнее время часто опечатываюсь.
Код: Выделить всё
void main() {
DDRC = 0xff;
DDRD = 0xff;
DDRB = 0xff;
while(1)
{
PORTC = 0;
PORTB = 0;
PORTD = 0;
delay_ms(500);
PORTC = 0xff;
PORTB = 0xff;
PORTD = 0xff;
delay_ms(500);
}
}