我正在爲Uno編寫我的第一個代碼,並且遇到了使用庫的問題。我創建了兩個GPSLocation類(loc1和loc2)的實例來存儲兩個位置的lat和lon。當我給它們賦值時,立即調用它們,兩個實例保持相同的值,這些值是我設置值的最後一個對象。我一直在看這個小時,看不到我做錯了什麼。兩個返回相同值的Arduino類實例
我的代碼如下。任何幫助都會很棒。
Test.ino
void setup() {
Serial.begin(115200);
}
void loop() {
GpsLocation loc1;
loc1.setLat(-12.3456);
loc1.setLon(34.4567);
GpsLocation loc2;
loc2.setLat(-78.9123);
loc2.setLon(187.6325);
delay(1000);
Serial.print("Loc1: ");
Serial.print(loc1.getLat(), 4);
Serial.print(", ");
Serial.print(loc1.getLon(), 4);
Serial.print("\n");
Serial.print("Loc2: ");
Serial.print(loc2.getLat(), 4);
Serial.print(", ");
Serial.print(loc2.getLon(), 4);
Serial.print("\n");
}
GPSLocation.h
#ifndef GpsLocation_h
#define GpsLocation_h
#include "Arduino.h"
class GpsLocation
{
public:
GpsLocation();
void setLat(float lat);
void setLon(float lon);
float getLat();
float getLon();
};
#endif
GPSLocation.cpp
#include "Arduino.h"
#include "GpsLocation.h"
float latitude = 0.0;
float longitude = 0.0;
GpsLocation::GpsLocation(){}
void GpsLocation::setLat(float lat)
{
latitude = lat;
}
void GpsLocation::setLon(float lon)
{
longitude = lon;
}
float GpsLocation::getLat()
{
return latitude;
}
float GpsLocation::getLon()
{
return longitude;
}
這是WHA t串行監視器返回
Loc1: -78.9123, 187.6325
Loc2: -78.9123, 187.6325
製作'GpsLocation'的'latitude'和'longitude'成員。 – user657267 2015-03-13 07:01:13
是的,看起來像你的經度和緯度被定義爲全局變量 - 它們沒有在GPSLocation類中定義 - 因此只有它們的一個副本存在。 – ThisHandleNotInUse 2015-03-13 07:09:14