|  |   
	
		|  
 | 
	  			
	  				|  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, 18:11. Visos datos yra GMT + 2 valandos.
 |  |  |  
	
		| 
	|  | Forumas » Mikrovaldikliai » Atmega 16   i2c |  
	| 
		
			| 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 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2008 02 18, 22:30 |     |  |  
	| 
	
		|  | 
			
				| Gal kas nors turite I2C  soursa ? |  |  
		|  |  |  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2008 02 19, 13:43 |     |  |  
	| 
	
		|  | 
			
				| Šitą jau bandžiau   Nepavyko. Niekaip negauna ACK.
 Bandant atlikti duomenų siuntimą viskas pakimba
   Niekaip nesuprantu  kame beda. Gal kokių nustatymų neįvedu.
 Įsikeliu reikiamus failus ir bandau atlikti siuntimą.
 Išbandžiau ir hardvarinį ir softwarinį.
 Procas Atmega16   + PCF8583
 |  |  
		|  |  |  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2008 02 19, 16:03 |     |  |  
	| 
	
		|  | 
			
				| juk viskas datasheet`e yra surašyta, parašyta, su visom smulkmenom  |  |  
		| 
		
			| _________________
 nepamirškit, klysti žmogiška
   privatas - privatiems klausimams
 arch linux
    |  |  |  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2008 02 19, 19:28 |     |  |  
	| 
	
		|  | 
			
				| O užkabinai pull-up rezistorius? Jei naudoji CodeVision tai ten yra gatava biblioteka ir I2C ir PCF8583, paleist labai paprasta, net pavyzdys yra kiek pamenu..
 |  |  
		|  |  |  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2008 02 19, 20:52 |     |  |  
	| 
	
		|  | 
			
				| Deja pas mane  vista ir code vision neveikia:( 
 Naudoju avr studio.
 
 As naudoju 4.7 k pulup rezistorius.
 |  |  
		| 
		
			| 
 Paskutinį kartą redagavo Ciklius, 2008 02 20, 00:33. Redaguota 2 kartus(ų)
 |  |  |  |  
	|  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2008 02 19, 20:57 |     |  |  
	| 
	
		|  | 
			
				| Pagaliau uzkuriau ta prakeikta i2c. Jeigu kam idomu RTC  PCF853 sourcas ant atmegos16
 
 Source:
 
 
 Funkcijos is AvrLib i2c sourco
 
 
 
	  | Kodas: |  
	  | // PCF8583.H
 #define PCF8583_WRITE_ADDRESS 0xA0
 #define PCF8583_READ_ADDRESS  0xA1
 
 // Register addresses
 #define PCF8583_CTRL_STATUS_REG    0x00
 #define PCF8583_100S_REG           0x01
 #define PCF8583_SECONDS_REG        0x02
 #define PCF8583_MINUTES_REG        0x03
 #define PCF8583_HOURS_REG          0x04
 #define PCF8583_DATE_REG           0x05
 #define PCF8583_MONTHS_REG         0x06
 #define PCF8583_TIMER_REG          0x07
 
 #define PCF8583_ALARM_CONTROL_REG  0x08
 #define PCF8583_ALARM_100S_REG     0x09
 #define PCF8583_ALARM_SECS_REG     0x0A
 #define PCF8583_ALARM_MINS_REG     0x0B
 #define PCF8583_ALARM_HOURS_REG    0x0C
 #define PCF8583_ALARM_DATE_REG     0x0D
 #define PCF8583_ALARM_MONTHS_REG   0x0E
 #define PCF8583_ALARM_TIMER_REG    0x0F
 
 // Use the first NVRAM address for the year byte.
 #define PCF8583_YEAR_REG           0x10
 
 // Commands for the Control/Status register.
 #define PCF8583_START_COUNTING     0x00
 #define PCF8583_STOP_COUNTING      0x80
 
 
 ///////////////////
 
 
 
 void PCF8583_write_byte(char address, char data)
 {
 cbi(TWCR, TWIE);
 i2cSendStart();
 i2cWaitForComplete();
 i2cSendByte(PCF8583_WRITE_ADDRESS);
 i2cWaitForComplete();
 i2cSendByte(address);
 i2cWaitForComplete();
 i2cSendByte(data);
 i2cWaitForComplete();
 i2cSendStop();
 sbi(TWCR, TWIE);
 }
 
 
 
 void PCF8583_write_bdc(int address, int data)
 {
 int sk1, sk2;
 
 sk1 = data % 10;
 sk2 = data / 10;
 sk2 = sk2 * 16;
 sk2 += sk1;
 cbi(TWCR, TWIE);
 i2cSendStart();
 i2cWaitForComplete();
 i2cSendByte(PCF8583_WRITE_ADDRESS);
 i2cWaitForComplete();
 i2cSendByte(address);
 i2cWaitForComplete();
 i2cSendByte(sk2);
 i2cWaitForComplete();
 i2cSendStop();
 sbi(TWCR, TWIE);
 }
 
 //----------------------------------------------
 int PCF8583_read_byte(char address)
 {
 int datam, dt1, dt2;
 datam=0;
 cbi(TWCR, TWIE);
 i2cSendStart();
 i2cWaitForComplete();
 i2cSendByte(PCF8583_WRITE_ADDRESS);
 i2cWaitForComplete();
 i2cSendByte(address);
 i2cWaitForComplete();
 i2cSendStart();
 i2cWaitForComplete();
 i2cSendByte(PCF8583_READ_ADDRESS);
 i2cWaitForComplete();
 i2cReceiveByte(FALSE);
 i2cWaitForComplete();
 datam = TWDR;
 i2cSendStop();
 sbi(TWCR, TWIE);
 dt1 = datam & 0x0f;
 dt2 = datam >> 4;
 datam = dt2*10 + dt1;
 return(datam);
 }
 
 int PCF8583_read_byte1(int address)
 {
 int datam;
 datam=0;
 cbi(TWCR, TWIE);
 i2cSendStart();
 i2cWaitForComplete();
 i2cSendByte(PCF8583_WRITE_ADDRESS);
 i2cWaitForComplete();
 i2cSendByte(address);
 i2cWaitForComplete();
 i2cSendStart();
 i2cWaitForComplete();
 i2cSendByte(PCF8583_READ_ADDRESS);
 i2cWaitForComplete();
 i2cReceiveByte(FALSE);
 i2cWaitForComplete();
 datam = TWDR;
 return(datam);
 }
 
 void PCF8583_init(void)
 {
 PCF8583_write_byte(PCF8583_CTRL_STATUS_REG,
 PCF8583_START_COUNTING);
 }
 
 |  |  |  
		|  |  |  |  
	|  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2009 01 27, 17:41 |     |  |  
	| 
	
		|  | 
			
				| tai antko buvai pasimoves? dabar pats su ds1307 kankinuos... |  |  
		|  |  |  |  
	|  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2009 01 28, 17:59 |     |  |  
	| 
	
		|  | 
			
				| paprastas twi ds1307 pvz: 
 
 
	  | Kodas: |  
	  | //*** IAR *** ATmega16 4.096 MHz ***
 #include <ioavr.h>
 #include <intrinsics.h>
 #define bitas(PIN,BIT) (PIN &(1 << BIT))
 #define TWINT 7
 //************************************************
 void TWI_Start(void){
 TWCR = 0xA4;
 while(1){
 if(bitas(TWCR,TWINT)){
 return;
 }
 }
 }
 //************************************************
 void TWI_Stop(void){
 TWCR = 0x94;
 }
 //************************************************
 void TWI_Write(unsigned char _data){
 TWDR = _data;
 TWCR = 0x84;
 while(1){
 if(bitas(TWCR,TWINT)){
 return;
 }
 }
 }
 //************************************************
 unsigned char TWI_Read(void){
 TWCR = 0x84;
 while(1){
 if(bitas(TWCR,TWINT)){
 return TWDR;
 }
 }
 }
 //************************************************
 void main( void ){
 DDRA = 255;
 TWBR = 42; // Fscl = Fclk / (16 + (2 * TWBR * 4^TWPS))
 TWI_Start();
 TWI_Write(0xD0); //DS1307 adr. 0b1101000(0) - rasyti
 TWI_Write(0x00); //Sekundziu adresas
 TWI_Start();
 TWI_Write(0xD1); //0b1101000(1) - skaityti
 PORTA = TWI_Read(); //skaito sekundes
 TWI_Stop();
 while(1){
 }
 }
 
 |  
 proteus simuliacija
  |  |  
		|  |  |  |  
	|  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2009 01 29, 07:42 |     |  |  
	| 
	
		|  | 
			
				| dekui pravers. nors jau ir su softwariniu i2c susitvarkiau. ant start bito buvau susimoves..
 |  |  
		|  |  |  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2009 03 03, 22:17 |     |  |  
	| 
	
		|  | 
			
				| gal kas DS1307 su i2c.h avrlib paleidot. Nu niekaip negaliu. kaskaip neisein man jo paleist. jis ale gauna patvirtinimus, bet skaiciai tai nesikeicia jei bandai rasyt. ir septinta registra statant nesikeicia OUT kojos busena. |  |  
		|  |  |  |  
	|  | Atmega 16   i2c |  
  | 
	| 
	
		|  Parašytas: 2009 03 04, 11:13 |     |  |  
	| 
	
		|  | 
			
				| paleidau, visu pirma buva Vbat i graunda nepajungtas. tada pas mane su skaitymu kashkas ne to. su avrlibu skaitant i2cMasterReceiveNI(0xD0,8,&dstt[0]);
 
 pastoviai gaunu kashkokius skaicius bet jie nesikeic.kodel nzn, reiks pabandyt pasiaiskint. pakolkas paleidau su tuo kodu kur centronic pateike.
 |  |  
		|  |  |  |  | 
				
					|  | 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
 |    |   
 
 
 |  |