Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

коды из разных сред разработки

Пн июн 26, 2017 13:04:00

Приветствую уважаемые форумчане!
В разработке имеется любительский проект включающий в себя MEGA16, LCD1602, кнопки управления и датчики...Код для Меню и Lcd уже написан и поотдельно отлажен. При сборке их воедино наблюдается неработоспособность кода. Прощу знающих подсказать причину этого явления. Код меню написан и отлажен в VS2015. код для LCD Atmel Studio 7.0. код помещен в библиотеку. По моему проблема не в коде, так как компилируется все отлично,а что-то более глобальное....

#define F_CPU 8000000UL
#include <stdio.h>
#include "LСD_includ.h"
#include <avr/io.h>
#include <util/delay.h>
#include <string.h>
#define RS (1<<5)
#define RW (1<<6)
#define E (1<<7)
#define LCD_PORT PORTD
#define RUN_PORT PORTA
#define Function_set_8bit 0x30 // интерфейс 8 бит
#define Function_set_4bit 0x20 // интерфейс 4 бит
#define clear_display 0x01

#define smeshenie_vpravo
#define Function_set 0x20 // две строки 4 бита
#define off_display 0x08
#define kursor_vpravo 0x06 //курсор двигаем вправо

struct Punkt {
int (*Punkt)(void);
int (*Tekparam)(void);
int (*Intparam)(void);
int (*Temperatura)(void);
};
////////////////////////////////
int FElectric(void)
{
puts("ELECTRIC"); return 0;
}
int Electric_TEKparam(void)
{
puts("E_TEKparam");
return 0;
}
int Electric_INTparam(void)
{
puts("E_INTparam"); return 0;
}
int Electric_TEMPERATURAparam(void)
{
puts("E_TEMPERATURAparam"); return 0;
}

///////////////////////////////////

int FGWS(void)
{ write_command(clear_display);
write_command(0x80);
char *GWS={"GWS M3"};
for(char x=0;GWS[x]!='\0';x++)
{
write_data(GWS[x]);
}
return 0;
}
int GWS_TEKparam(void)
{
puts("GWS_TEKparam"); return 0;
}
int GWS_INTparam(void)
{
puts("GWS_INTparam"); return 0;
}
int GWS_TEMPERATURAparam(void)
{
puts("GWS_TEMPERATURAparam"); return 0;
}

//////////////////////////////////////////
int FHWS(void)
{
puts("HWS"); return 0;
}
int HWS_TEKparam(void)
{
puts("HWS_TEKparam"); return 0;
}
int HWS_INTparam(void)
{
puts("HWS_INTparam"); return 0;
}
int HWS_TEMPERATURAparam(void)
{
puts("HWS_TEMPERATURAparam"); return 0;
}
i



}
}

int main(void)
{
DDRA =0xFF;
PORTA =0x00;
DDRD =0xFF;
PORTD =0x00;


struct Punkt Electric = { FElectric, Electric_TEKparam, Electric_INTparam, Electric_TEMPERATURAparam };
struct Punkt GWS = { FGWS, GWS_TEKparam, GWS_INTparam, GWS_TEMPERATURAparam };
struct Punkt HWS = { FHWS, HWS_TEKparam, HWS_INTparam, HWS_TEMPERATURAparam };
int select=0;

init_LCD();
write_command(0x0E);
GWS.Punkt();

}

Re: коды из разных сред разработки

Вт июн 27, 2017 02:46:35

В майне ретурн добавьте.
Ps. Работоспособность кода определяется руками.

Re: коды из разных сред разработки

Вт июн 27, 2017 04:12:54

Ну и интересно, куда же должно выбросить после main-а???? Когда прога подойдет к последней скобке }
Например, в ARM-подобных перейдет в default_Handler и там и зациклится безвозвратно, до сброса

Re: коды из разных сред разработки

Вт июн 27, 2017 13:35:22

Проблема решена!Во всем виновата спешка и невнимательность...Спасибо всем,ну и извиняюсь за Ваше потраченное время.
Ответить