Vizitator manau Postat Ianuarie 23, 2011 Partajează Postat Ianuarie 23, 2011 un pic ajutor cum compilez codul de mai jos in Code Vision AVR si cum schimb din ATmega8 in 32 este un termometru cu sensor ds18b20 lcd nokia 3310 eu am compilat am pus in proteus dar nimic poate cineva stie cum sa pun librariile petru nokia 3310 /***************************************************** ATmega8 4,000000 MHz *****************************************************/ #include <mega8.h> // 1 Wire Bus functions #asm .equ __w1_port=0x12;PORTD .equ __w1_bit=2 #endasm #include <1wire.h> // DS1820 Temperature Sensor functions #include <ds18b20.h> #include <delay.h> // maximum number of DS1820 devices // connected to the 1 Wire bus #define MAX_DS18B20 3 // number of DS1820 devices // connected to the 1 Wire bus unsigned char ds18b20_devices; // DS1820 devices ROM code storage area, // 9 bytes are used for each device // (see the w1_search function description in the help) unsigned char ds18b20_rom_codes[MAX_DS18B20][9]; #include <3310lcd.c> #include <stdio.h> // Declare your global variables here float temper; int temper_int,temper_fl,min=0; void temperature(void) // функция по работе с термо-датчиком { temper=ds18b20_temperature(&ds18b20_rom_codes[0][0]); temper_int=temper; // отбор целой части от температуры if(temper<0) // при отрицательной температуре { temper_fl=(temper-temper_int-0.0625)*10; // дробная часть temper_int=-((temper_int*10)+temper_fl); // температура*10 min=1; // минус }else // при положительной { temper_fl=(temper-temper_int)*10; // дробная часть temper_int=(temper_int*10)+temper_fl;// температура*10 min=0; // плюс } } void main(void) { // Determine the number of DS1820 devices // connected to the 1 Wire bus ds18b20_devices=w1_search(0xf0,ds18b20_rom_codes); ds18b20_init(0,-35,35,DS18B20_12BIT_RES); // переключения термометра в 12 битный режим LcdInit(); // LCD module initialization while (ds18b20_devices>0 ) { // Place your code here delay_ms(500); temperature(); // вызываем функцию температуры LcdClear(); // очищаем LCD if(min==1) // если минус { sprintf(lcd_buf,"-%u.%u\x80C",temper_int/10,temper_int%10); //вывод отрицательной температуры }else { sprintf(lcd_buf,"+%i.%d\x80C",temper_int/10,temper_int%10); // вывод положительной } LcdStringBold(1,2); LcdUpdate(); // вывод на дисплей }; } Link spre comentariu
Vizitator manau Postat Ianuarie 24, 2011 Partajează Postat Ianuarie 24, 2011 un rezultat doar ca e atmega32 Link spre comentariu
yo9hnf Postat Ianuarie 24, 2011 Partajează Postat Ianuarie 24, 2011 manau, pune te rog si un link cu schema. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum