roboforum.ru

Технический форум по робототехнике.

Бортовой компьютер на инжектор

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: Бортовой компьютер на инжектор

Сообщение Duhas » 28 авг 2009, 16:03

МК это просто ))
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Бортовой компьютер на инжектор

Сообщение avr123.nm.ru » 28 авг 2009, 16:24

Как раз, два, три ...
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 12 сен 2009, 22:31

В общем собрал и даже обкатал на пяти тысячах км. полет нормальный :Yahoo!:

Теперь совсем другая тема- кодовый замок, по сравнению с предыдущим проектом- детский сад.
Но как всегда грабли:
вот так объявлена переменная-unsigned long int kod_s_klavy=0;
но значения больше 32767 не лезут,
косяк компилятора cvavr2?
или его настроить можно?
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение blindman » 13 сен 2009, 14:15

но значения больше 32767 не лезут

Как узнал?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 13 сен 2009, 14:49

ВСЕ В ПРОТЕУСЕ :)
ЖК только для отладки, в железе его не будет.
подцепил ЖК, 12 кнопок. Вводимый код отображается на ЖК. С 4 цифрами работает, на 5 всплывает минус, заинтересовался, подумал немного. набрал 32767- пролезло, 32768 и больше - лагает.
объявлена так: unsigned long int kod_s_klavy=0;
компилируется получается как : int kod_s_klavy=0;
Что за хрень?
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение blindman » 13 сен 2009, 15:13

Видимо, где-то временные переменные присутствуют недостаточной разрядности. Код бы поглядеть.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 13 сен 2009, 15:31

не вопрос :)
Код: Выделить всёРазвернуть
#include <stdlib.h>
#include <mega8.h>
#include <delay.h>
#include <stdio.h>


#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>


char iii[14];
unsigned long int  kod_s_klavy=0;



// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here

}

void sbros(void) {
lcd_clear();
kod_s_klavy=0;
}



void kontrol(void) {

if (kod_s_klavy==55555) {
   // все ОК
      lcd_clear(); lcd_putsf("  Door Open "); kod_s_klavy=0; delay_ms(2000); lcd_clear(); lcd_putsf("  Door Close "); delay_ms(2000); lcd_clear(); }
else  {
   // ругаемся динамиком, считаем ошибки
kod_s_klavy=0; lcd_gotoxy(0,0); lcd_putsf("error :)"); delay_ms(2000);  lcd_clear();  };  }






void knopki(void) {    //  PINC.2-5   PIND.0-7
lcd_gotoxy(0,1);
itoa(kod_s_klavy,iii);
lcd_puts(iii);         
//if (PINC.1==0) {eeprom_kode=kod_s_klavy; kode=kod_s_klavy; lcd_clear(); kod_s_klavy=0;};  while (PINC.1==0) {};         
if (PINC.2==0) {kod_s_klavy=kod_s_klavy*10+1;};  while (PINC.2==0) {};
if (PINC.3==0) {kod_s_klavy=kod_s_klavy*10+2;};  while (PINC.3==0) {};       
if (PINC.4==0) {kod_s_klavy=kod_s_klavy*10+3;};  while (PINC.4==0) {};       
if (PINC.5==0) {kod_s_klavy=kod_s_klavy*10+4;};  while (PINC.5==0) {};
if (PIND.0==0) {kod_s_klavy=kod_s_klavy*10+5;};  while (PIND.0==0) {};
if (PIND.1==0) {kod_s_klavy=kod_s_klavy*10+6;};  while (PIND.1==0) {};
if (PIND.2==0) {kod_s_klavy=kod_s_klavy*10+7;};  while (PIND.2==0) {};
if (PIND.3==0) {kod_s_klavy=kod_s_klavy*10+8;};  while (PIND.3==0) {};
if (PIND.4==0) {kod_s_klavy=kod_s_klavy*10+9;};  while (PIND.4==0) {};
if (PIND.5==0) {kod_s_klavy=kod_s_klavy*10;};  while (PIND.5==0) {};
if (PIND.6==0) {sbros(); };  while (PIND.6==0) {};
if (PIND.7==0) {kontrol(); };  while (PIND.7==0) {};

} // конец обработки нажатия кнопки


 


void main(void)
{
PORTB=0x00;
DDRB=0x00;
PORTC=0x7F;
DDRC=0x01;
PORTD=0xFF;
DDRD=0x00;
TCCR0=0x05;
TCNT0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
TIMSK=0x01;
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")
lcd_init(16);
lcd_putsf("****************");


while (1)
      {   knopki() ;   };
     
     
     
      /*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 12.09.2009
Author  :
Company :
Comments:


Chip type           : ATmega8
Program type        : Application
Clock frequency     : 1,000000 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 256
*****************************************************/
}





только ща осенило- ЖК :oops:
а вот такое имеет право на жизнь? : eeprom unsigned long int eeprom_kode;
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение blindman » 13 сен 2009, 15:51

Похоже что вот здесь разрядность теряется:
Код: Выделить всёРазвернуть
itoa(kod_s_klavy,iii);


нужна ltoa()
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Бортовой компьютер на инжектор

Сообщение vvk74 » 13 сен 2009, 20:42

Sun-dey писал(а):ВСЕ В ПРОТЕУСЕ :)
объявлена так: unsigned long int kod_s_klavy=0;
компилируется получается как : int kod_s_klavy=0;
Что за хрень?

надо оставить unsigned long kod_s_klavy=0;
т.е int убрать

Добавлено спустя 4 минуты 19 секунд:
Добавлю и свой БК для инжектора, я на нем C изучал :)
Вложения
MK.rar
(91.64 КиБ) Скачиваний: 76
vvk74
 
Сообщения: 128
Зарегистрирован: 08 сен 2009, 20:13
Откуда: Екатеринбург

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 13 сен 2009, 21:51

Добавлю и свой БК для инжектора, я на нем C изучал

Эх, что ж ты раньше сюда не заглянул, я столько провозился с разными граблями... :cry:
Неслабая разработка :)
ОБД работало? да и вообще все в целом?
Если да- то неплохо схемку бы.
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение SERGEY_M » 13 сен 2009, 22:11

схемка в архиве, формат PCAD...
Аватара пользователя
SERGEY_M
 
Сообщения: 682
Зарегистрирован: 20 мар 2009, 12:45
Откуда: Украина, Одесса
ФИО: Сергей

Re: Бортовой компьютер на инжектор

Сообщение blindman » 14 сен 2009, 01:18

vvk74 писал(а):надо оставить unsigned long kod_s_klavy=0;
т.е int убрать

Это что-то меняет?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 14 сен 2009, 10:28

Данные обрезались при преобразовании для LCD, попробовал вот так написать: "itoa(777777,iii);" - тоже переполнило. "ltoa()" приму к сведению, потом попробую (из-за этого наверное и с БК граблей много было)

Для замка: прошивку дописал, плата в разработке, антивандальная клава из подручных средств на очереди. :)
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение blindman » 14 сен 2009, 10:36

Интересно, почему в CVAVR всего 2 параметра у itoa()?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Бортовой компьютер на инжектор

Сообщение Master » 14 сен 2009, 10:39

А зачем третий?
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20