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


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

 
 

#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
*****************************************************/
}
 
 itoa(kod_s_klavy,iii);
Sun-dey писал(а):ВСЕ В ПРОТЕУСЕ
объявлена так: unsigned long int kod_s_klavy=0;
компилируется получается как : int kod_s_klavy=0;
Что за хрень?

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

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




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