|  |   
	
		|  
 | 
	  			
	  				|  Elektronika.lt portalo forumasJūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
						Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose. 
 Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
						kurie nesilaiko forumo taisyklių.
						Pastebėjus nusižengimus, prašome pranešti.
 
 Dabar yra 2025 10 31, 10:11. Visos datos yra GMT + 2 valandos.
 |  |  |  
	
		| 
	|  | Forumas » Skaitmeninė elektronika » atmega 8 skaitmeninis tachometras ir impulso plocio valdymas |  
	| 
		
			| Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume
 Jūs negalite redaguoti savo pranešimų šiame forume
 Jūs negalite ištrinti savo pranešimų šiame forume
 Jūs negalite dalyvauti apklausose šiame forume
 
 |  |  |  
	|  |  
	|  |  
	|  | atmega 8 skaitmeninis tachometras ir impulso plocio valdymas |  
  | 
	| 
	
		|  Parašytas: 2014 11 16, 20:50 |     |  |  
	| 
	
		|  | 
			
				| Sveiki. pasidariau skaitmenini tachometra pagal internete rasta programa, viskas veikia gerai. Taciau dar prireike, kad priklausomai nuo rpm, atmega keistu i viena koja paduodamo impulso ploti. Impuls plocio programa irgi jau pasirasiau, bet dabar kazkaip reik jas susiet i viena. Butu galima jas sudet i viena atmega 8, ar reikia naudot 2 mikroschemas? Programu kodai:
 tachometras
 
 #include <avr/io.h>
 #include <avr/interrupt.h>
 #include <util/delay.h>
 #include "lcd.h"
 volatile uint16_t count=0;
 volatile uint16_t rpm=0;
 volatile uint16_t rps=0;
 
 void Wait()
 {
 uint8_t i;
 for(i=0;i<2;i++)
 {
 _delay_loop_2(0);
 }
 }
 void main()
 {
 LCDInit(LS_NONE);
 
 LCDWriteString("RPM Meter");
 LCDWriteStringXY(0,1,"- by avinash");
 Wait();
 Wait();
 Wait();
 Wait();
 MCUCR|=(1<<ISC01);
 GICR|=(1<<INT0);
 TCCR1B|=((1<<WGM12)|(1<<CS12)|(1<<CS10));
 OCR1A=976;
 TIMSK|=(1<<OCIE1A);
 sei();
 DDRB|=(1<<PB1);
 LCDClear();
 LCDWriteStringXY(0,0,"RPM =");
 LCDWriteStringXY(0,1,"RPS =");
 while(1)
 {
 LCDWriteIntXY(6,0,rpm,5);
 LCDWriteIntXY(6,1,rps,5);
 if(PIND & (1<<PD2))
 {
 PORTB|=(1<<PB1);
 }
 else
 {
 PORTB&=(~(1<<PB1));
 }
 Wait();
 }
 }
 ISR(INT0_vect)
 {
 }
 ISR(TIMER1_COMPA_vect)
 {
 rps=count;
 rpm=rps*60;
 count=0;
 }
 
 Impulso plotis:
 
 #include <avr\io.h>
 int main(void) {
 
 DDRD=0x00;
 PORTD=0xFF;
 DDRB=0xFF;
 ICR1=20000;
 OCR1A=10000;
 TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(0<<COM1B1)|
 (0<<FOC1A)|(0<<FOC1B)|(1<<WGM11)|(0<<WGM10);
 TCCR1B|=(0<<ICNC1)|(0<<ICES1)|(1<<WGM13)|(1<<WGM12)|
 (0<<CS12)|(1<<CS11)|(0<<CS10);
 while  (1)
 {
 }
 }
 |  |  
		|  |  |  |  
	|  |  
	|  | atmega 8 skaitmeninis tachometras ir impulso plocio valdymas |  
  | 
	| 
	
		|  Parašytas: 2014 11 17, 12:57 |     |  |  
	| 
	
		|  | 
			
				| kas trukdo i pagrindini programos cikla ivesti paprograme "plotis"? Tada cikle kreipsis i paprograme ir priklausomai nuo greicio formuos impulsa, jei paprograme parasyta teisingai... |  |  
		| 
		
			| _________________
 Nieko taip lengvai nedaliname, kaip patarimus...
 |  |  |  |  | 
				
					|  | Google paieška forume |  
					|  |  
				
					|  | Naujos temos forume |  
					|  |    
	
		|  | FS25 Tractors Farming Simulator 25 Mods,
	    	FS25 Maps,
			FS25 Trucks
 |  
		|  | ETS2 Mods ETS2 Trucks,
			ETS2 Bus,
			Euro Truck Simulator 2 Mods
 |  
		|  | FS22 Tractors Farming Simulator 22 Mods,
	    	FS22 Maps,
		FS25 Mods
 |  
	|  | VAT calculator VAT number check,
	    	What is VAT,
	    	How much is VAT
 |  
	|  | Dantų protezavimas All on 4 implantai,
 Endodontija mikroskopu,
 Dantų implantacija
 |  
	|  | FS25 Mods FS25 Maps,
		FS25 Cheats,
		FS25 Install Mods
 |  
	|  | FS25 Mods Farming Simulator 25 Mods,
 FS25 Maps
 |  
	|  | ATS Trailers American Truck Simulator Mods,
		ATS Trucks,
		ATS Maps
 |    |   
 
 
 |  |