The ADXL345 outputs voltages based on its acceleration. The outputs are not angles but in g's (1g = 9.8m/s^2).
The description of adafruit's adxl335 breakout board gives a good explanation of this accelerometer's outputs:
https://www.adafruit.com/products/163
Using a 10-bit ADC (range of 0 to 1023) with your ADC's reference voltage at VDD (let's say 3.3V) to read the ADXL335 inputs would mean:
An acceleration of -3g outputs 0V = 0 reading
At 0g (no acceleration), you would get half of VDD (1.65V) = 511 reading (half of the full 0-1023 range)
An acceleration of 3g outputs VDD (3.3V) = 1023 reading
So when you lay your accelerometer on a flat surface (not moving), it should read 0g along the x axis, 0g along the y axis, and 1g along the z axis due to gravity (1g), so you should get a reading of
x = 511
y = 511
z = 663
The 0v to 3.3v (or -3g to +3g) is scaled along the 0-1023 range. These are all "ideal" scenarios, and of course, each accelerometer is going to have slight variations with their outputs. Calibration happens more in your host controller's application code, and is based on reading the 0g values of each axis of your accelerometer. Based on your 0g readings during the calibration process, your future readings are "adjusted" to reflect the actual acceleration of your device. Here's a link which describes the calibration process more in detail:
https://www.virtuabotix.com/advance...er-guide-converting-analog-readings-g-forces/