سلام دوستان،یه برنامه واسه کنترل سطح اب نوشتم که وقتی اب مخزن کم شد پمپ روشن شه ،حالا این مدارو در شبیه ساز میبندم کار میکنه،ولی وقتی در عمل میبندم،فقط وصلشو میفهمه،مشکل از کجای کاره؟
این از کدی که نوشتم:
کد:
#ifndef F_CPU
#define F_CPU 1000000UL /* CPU CLOCK FREQUENCY */
#endif
#include <avr/io.h>
#include <stdlib.h>
#include <stdio.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "LCD16x2_4bit.h"
volatile int readLevel=0;
ISR(TIMER2_COMP_vect){
readLevel = PINB & 0x03;
switch(readLevel)
{
case 0x00:
PORTD &= ~(1<<6);
break;
case 0x02:
PORTD |= (1<<6);
break;
case 0x03:
PORTD |= (1<<6);
break;
default:
PORTD &= ~(1<<6);
}
}
int main(void)
{
lcdinit();
DDRD = 0b01010011;
PORTD = 0b00000000;
DDRB = 0b00000000;
PORTB = 0b00000000;
TCCR2 |= (1 << WGM01) | (1 << CS00) | (1 << CS02);
OCR2 = 0x60;
TIFR |= (1 << OCF2);
TIMSK |= (1 << OCIE2);
TCNT2 = 0;
while(1)
{
}
}
اینم عکس شبیه ساز:
ممنون میشم کمکم کنید